{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "1eafa523",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2025-06-13 10:40:31.489346: I tensorflow/core/util/port.cc:110] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n",
      "2025-06-13 10:40:31.491639: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.\n",
      "2025-06-13 10:40:31.570234: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.\n",
      "2025-06-13 10:40:31.571921: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
      "To enable the following instructions: AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
      "2025-06-13 10:40:32.383123: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "from deepface import DeepFace\n",
    "from sklearn.decomposition import PCA\n",
    "import matplotlib.pyplot as plt\n",
    "from tqdm import tqdm\n",
    "import pickle"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "6400fbf7",
   "metadata": {},
   "outputs": [],
   "source": [
    "model_name = \"Facenet512\""
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0beef56e",
   "metadata": {},
   "source": [
    "# What Is An Embedding?\n",
    "\n",
    "An embedding is multi-dimensional vector, but it is not understandable as is for human beings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "4024341d",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2025-06-13 10:44:26.488333: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] could not open file to read NUMA node: /sys/bus/pci/devices/0000:f3:00.0/numa_node\n",
      "Your kernel may have been built without NUMA support.\n",
      "2025-06-13 10:44:26.488751: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1960] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.\n",
      "Skipping registering GPU devices...\n"
     ]
    }
   ],
   "source": [
    "embedding = DeepFace.represent(img_path=\"dataset/img1.jpg\", model_name=model_name, detector_backend=\"mtcnn\")[0][\"embedding\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "3b1dbecf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Embedding has 512 dimensions\n"
     ]
    }
   ],
   "source": [
    "print(f\"Embedding has {len(embedding)} dimensions\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "777a3ef8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[-0.5800899863243103,\n",
       " 0.49073147773742676,\n",
       " -0.541978120803833,\n",
       " -0.5362149477005005,\n",
       " 0.8673033118247986,\n",
       " -0.3110777735710144,\n",
       " 1.6439862251281738,\n",
       " 1.0422444343566895,\n",
       " 0.49424535036087036,\n",
       " -0.7632251381874084,\n",
       " 0.568842887878418,\n",
       " 1.2297348976135254,\n",
       " 0.4075915217399597,\n",
       " -1.9624804258346558,\n",
       " -1.8717180490493774,\n",
       " 0.1243176981806755,\n",
       " -0.029327712953090668,\n",
       " -0.16930146515369415,\n",
       " -0.6892706155776978,\n",
       " -1.229070782661438,\n",
       " -0.2585531771183014,\n",
       " 0.7143777012825012,\n",
       " -1.39646315574646,\n",
       " -0.3089902698993683,\n",
       " -0.2544291019439697,\n",
       " 0.8497409224510193,\n",
       " 0.22358675301074982,\n",
       " -1.6465028524398804,\n",
       " -1.1567769050598145,\n",
       " 0.10510019212961197,\n",
       " 0.23702986538410187,\n",
       " -0.7497061491012573,\n",
       " 1.7056957483291626,\n",
       " -0.7189028859138489,\n",
       " -0.008875804953277111,\n",
       " 0.5017907023429871,\n",
       " 0.7206048369407654,\n",
       " -0.7071428298950195,\n",
       " 0.7452940344810486,\n",
       " -0.47018516063690186,\n",
       " 0.33446836471557617,\n",
       " -2.702781915664673,\n",
       " 0.4717637300491333,\n",
       " -0.6417455673217773,\n",
       " -1.26873779296875,\n",
       " 0.566139280796051,\n",
       " -1.2088464498519897,\n",
       " 0.7562647461891174,\n",
       " 1.1686196327209473,\n",
       " -0.6736566424369812,\n",
       " 0.6753178238868713,\n",
       " 0.523244321346283,\n",
       " -0.9780261516571045,\n",
       " 0.560385525226593,\n",
       " 1.4228383302688599,\n",
       " 0.23231449723243713,\n",
       " -0.3484548330307007,\n",
       " 0.21311761438846588,\n",
       " -1.4547785520553589,\n",
       " -1.5973994731903076,\n",
       " -0.5389463305473328,\n",
       " 1.4046688079833984,\n",
       " -0.9053237438201904,\n",
       " 0.40000614523887634,\n",
       " -1.7249155044555664,\n",
       " -0.8494378924369812,\n",
       " -0.6042077541351318,\n",
       " 0.2846261262893677,\n",
       " 2.129163980484009,\n",
       " -0.31122130155563354,\n",
       " 0.40902018547058105,\n",
       " -0.5686132311820984,\n",
       " -0.6697391271591187,\n",
       " -0.20522692799568176,\n",
       " -0.24331337213516235,\n",
       " 0.2748951315879822,\n",
       " -0.2180272787809372,\n",
       " -1.744777798652649,\n",
       " -0.8616923093795776,\n",
       " -0.1170371025800705,\n",
       " -1.5656017065048218,\n",
       " 0.5990308523178101,\n",
       " 1.1058369874954224,\n",
       " -1.647817850112915,\n",
       " -0.7844058275222778,\n",
       " 0.0709509551525116,\n",
       " 1.0627634525299072,\n",
       " -2.0873899459838867,\n",
       " 2.255528450012207,\n",
       " -0.9408628344535828,\n",
       " -1.9271396398544312,\n",
       " 0.5572118759155273,\n",
       " -0.06718599051237106,\n",
       " 1.878216028213501,\n",
       " 0.4469226598739624,\n",
       " 1.1997861862182617,\n",
       " -1.0979331731796265,\n",
       " -0.7390506267547607,\n",
       " -1.8416885137557983,\n",
       " 0.36464500427246094,\n",
       " -1.5015891790390015,\n",
       " -0.10392510145902634,\n",
       " 0.8246946334838867,\n",
       " -0.2709963619709015,\n",
       " -0.30365878343582153,\n",
       " -1.0968624353408813,\n",
       " 1.1539661884307861,\n",
       " -0.030645541846752167,\n",
       " 0.6948468685150146,\n",
       " -0.504917562007904,\n",
       " 0.5983151197433472,\n",
       " 0.2616034746170044,\n",
       " -1.1928002834320068,\n",
       " -0.05377503111958504,\n",
       " 0.6273865699768066,\n",
       " -0.5775817632675171,\n",
       " 1.554474949836731,\n",
       " 0.28592124581336975,\n",
       " -0.5223115682601929,\n",
       " -0.6241593360900879,\n",
       " -0.5281373262405396,\n",
       " -0.38818323612213135,\n",
       " -0.42948776483535767,\n",
       " 0.31884485483169556,\n",
       " -1.307066559791565,\n",
       " 0.7251277565956116,\n",
       " -0.26334795355796814,\n",
       " -0.6933295130729675,\n",
       " -0.02228192239999771,\n",
       " -0.40926727652549744,\n",
       " 0.6419417858123779,\n",
       " 0.6709430813789368,\n",
       " -0.7478097081184387,\n",
       " -0.8134288787841797,\n",
       " -0.8396734595298767,\n",
       " -0.4906749725341797,\n",
       " -0.8595209717750549,\n",
       " 0.21592265367507935,\n",
       " 0.5856948494911194,\n",
       " 0.04831744730472565,\n",
       " 0.36390024423599243,\n",
       " -0.050432898104190826,\n",
       " -1.1897449493408203,\n",
       " 0.5120699405670166,\n",
       " -0.30452701449394226,\n",
       " -0.3917224109172821,\n",
       " 1.1850444078445435,\n",
       " -1.0866442918777466,\n",
       " 0.3930858075618744,\n",
       " 0.9231581091880798,\n",
       " 1.162112832069397,\n",
       " -1.5044759511947632,\n",
       " 0.1945209950208664,\n",
       " -0.02950742468237877,\n",
       " 0.7779355645179749,\n",
       " 0.10031178593635559,\n",
       " 1.0116807222366333,\n",
       " -0.06358691304922104,\n",
       " 0.8494330644607544,\n",
       " 2.299011468887329,\n",
       " 0.20014822483062744,\n",
       " -1.034205675125122,\n",
       " -0.9279672503471375,\n",
       " 0.06479998677968979,\n",
       " -0.6832181811332703,\n",
       " 0.26018545031547546,\n",
       " 0.7470055222511292,\n",
       " 1.799851894378662,\n",
       " -0.2681190073490143,\n",
       " 0.7948665618896484,\n",
       " 0.6431542634963989,\n",
       " 1.1632825136184692,\n",
       " -1.4150140285491943,\n",
       " 0.9988402724266052,\n",
       " -0.2780741751194,\n",
       " 1.4790138006210327,\n",
       " -1.2525149583816528,\n",
       " -0.02148802950978279,\n",
       " 1.0485715866088867,\n",
       " 1.248265266418457,\n",
       " 0.24015793204307556,\n",
       " -0.8832458257675171,\n",
       " 0.27230387926101685,\n",
       " 0.5958184599876404,\n",
       " 0.5864776372909546,\n",
       " 0.09467660635709763,\n",
       " 0.24161472916603088,\n",
       " 0.874281644821167,\n",
       " 0.7162632942199707,\n",
       " 1.0489907264709473,\n",
       " 0.4138299524784088,\n",
       " -0.15899917483329773,\n",
       " -2.230074882507324,\n",
       " -1.9209035634994507,\n",
       " 0.12951891124248505,\n",
       " -1.549422264099121,\n",
       " 1.9810339212417603,\n",
       " 0.04958456754684448,\n",
       " -0.31123775243759155,\n",
       " -0.9945749640464783,\n",
       " -0.010302916169166565,\n",
       " -1.0786634683609009,\n",
       " 0.46471020579338074,\n",
       " 0.22079461812973022,\n",
       " 0.7879157662391663,\n",
       " 0.622094452381134,\n",
       " 0.19428203999996185,\n",
       " 0.4138810634613037,\n",
       " -1.1872104406356812,\n",
       " -0.723224401473999,\n",
       " 1.0378906726837158,\n",
       " -1.0636523962020874,\n",
       " 1.3779873847961426,\n",
       " -0.28755971789360046,\n",
       " -1.2486227750778198,\n",
       " -1.5871813297271729,\n",
       " -1.2352657318115234,\n",
       " 0.31948530673980713,\n",
       " 0.12886355817317963,\n",
       " -0.9391040802001953,\n",
       " -1.2725294828414917,\n",
       " -0.8354793787002563,\n",
       " 0.5420477390289307,\n",
       " 0.6116922497749329,\n",
       " 0.2110547125339508,\n",
       " -0.08550440520048141,\n",
       " -0.9570245146751404,\n",
       " 0.05664994567632675,\n",
       " 1.1149532794952393,\n",
       " -1.4122494459152222,\n",
       " -0.34366244077682495,\n",
       " 0.012320755049586296,\n",
       " -0.7147057056427002,\n",
       " 0.3061072528362274,\n",
       " -0.19314977526664734,\n",
       " 0.21486049890518188,\n",
       " -1.1116141080856323,\n",
       " 0.6842917799949646,\n",
       " -0.19521477818489075,\n",
       " -0.22958898544311523,\n",
       " 0.3035663366317749,\n",
       " 0.07029010355472565,\n",
       " 0.9221768975257874,\n",
       " 0.3484252393245697,\n",
       " 1.3232775926589966,\n",
       " -0.20425590872764587,\n",
       " 1.862005591392517,\n",
       " -1.1305814981460571,\n",
       " -0.11288198828697205,\n",
       " -1.225825548171997,\n",
       " -0.8054065108299255,\n",
       " -0.6497034430503845,\n",
       " 0.993518054485321,\n",
       " 0.8309651613235474,\n",
       " 0.8253006935119629,\n",
       " -1.3275113105773926,\n",
       " 1.1565717458724976,\n",
       " -0.15840943157672882,\n",
       " -0.1687781810760498,\n",
       " -0.27572330832481384,\n",
       " 1.8850330114364624,\n",
       " 1.8815107345581055,\n",
       " 0.259135365486145,\n",
       " -0.5941596031188965,\n",
       " -0.500739336013794,\n",
       " 0.3456867039203644,\n",
       " 0.6718147397041321,\n",
       " 0.25938838720321655,\n",
       " -0.4533999562263489,\n",
       " -0.4335188567638397,\n",
       " -0.8644786477088928,\n",
       " -0.034844305366277695,\n",
       " -0.0887962132692337,\n",
       " -1.396864891052246,\n",
       " 1.6906794309616089,\n",
       " 0.9789666533470154,\n",
       " 1.1144994497299194,\n",
       " -1.3503450155258179,\n",
       " 1.0046418905258179,\n",
       " -0.8696907162666321,\n",
       " -0.8213813900947571,\n",
       " 0.25458765029907227,\n",
       " -0.8287863731384277,\n",
       " -1.1548669338226318,\n",
       " -1.4189711809158325,\n",
       " -0.26197513937950134,\n",
       " -1.3226509094238281,\n",
       " 0.9009723663330078,\n",
       " 0.12292269617319107,\n",
       " 1.1513913869857788,\n",
       " -1.0165549516677856,\n",
       " -0.770066499710083,\n",
       " -0.05383721739053726,\n",
       " -0.6043097972869873,\n",
       " 0.28284379839897156,\n",
       " 0.5432997345924377,\n",
       " 0.2737176716327667,\n",
       " -1.7329926490783691,\n",
       " 0.5599610805511475,\n",
       " 0.45715320110321045,\n",
       " -0.46130359172821045,\n",
       " -0.56011563539505,\n",
       " 1.3314003944396973,\n",
       " 0.36502543091773987,\n",
       " -0.5822959542274475,\n",
       " -0.8884451389312744,\n",
       " -1.308560848236084,\n",
       " -1.318824291229248,\n",
       " -0.5231592655181885,\n",
       " -0.5607277750968933,\n",
       " 2.660759925842285,\n",
       " 0.14875654876232147,\n",
       " 1.6194113492965698,\n",
       " -0.5117310881614685,\n",
       " 0.13089294731616974,\n",
       " 0.358976811170578,\n",
       " 0.6586211323738098,\n",
       " 1.096405029296875,\n",
       " -0.26005396246910095,\n",
       " -0.6581495404243469,\n",
       " 1.5085415840148926,\n",
       " 1.466122031211853,\n",
       " -0.6149080395698547,\n",
       " 1.1180533170700073,\n",
       " 0.2535475790500641,\n",
       " 0.22672346234321594,\n",
       " 1.4129291772842407,\n",
       " -0.29420676827430725,\n",
       " 0.17876242101192474,\n",
       " -0.8166388273239136,\n",
       " 0.7417342066764832,\n",
       " 0.5535765290260315,\n",
       " 0.972197413444519,\n",
       " 2.1549856662750244,\n",
       " 0.1702760010957718,\n",
       " -0.3793928325176239,\n",
       " 1.2961596250534058,\n",
       " -0.8879857659339905,\n",
       " 0.7744811177253723,\n",
       " -0.21609662473201752,\n",
       " 1.5976262092590332,\n",
       " -1.0775762796401978,\n",
       " 0.009924739599227905,\n",
       " -1.5071117877960205,\n",
       " -0.7369672060012817,\n",
       " -0.9833410978317261,\n",
       " 1.1009448766708374,\n",
       " -0.25151798129081726,\n",
       " -0.5740128755569458,\n",
       " -2.605574369430542,\n",
       " -1.1420905590057373,\n",
       " 1.9152663946151733,\n",
       " 0.26345112919807434,\n",
       " -1.3503687381744385,\n",
       " 0.9891656041145325,\n",
       " 1.927402377128601,\n",
       " 1.936037540435791,\n",
       " -0.24541042745113373,\n",
       " 0.2865094542503357,\n",
       " -0.6788109540939331,\n",
       " -0.6485183835029602,\n",
       " 1.1412913799285889,\n",
       " 2.0878140926361084,\n",
       " 0.19655758142471313,\n",
       " 1.193855881690979,\n",
       " -0.41135266423225403,\n",
       " -0.47239449620246887,\n",
       " 0.38162827491760254,\n",
       " -0.05820143222808838,\n",
       " 0.5285300612449646,\n",
       " 0.7540555596351624,\n",
       " -2.2288663387298584,\n",
       " 0.5935599207878113,\n",
       " -2.049833059310913,\n",
       " -1.1660596132278442,\n",
       " 0.6616880893707275,\n",
       " -0.21238397061824799,\n",
       " 1.3751411437988281,\n",
       " -1.226212739944458,\n",
       " 0.22277307510375977,\n",
       " -0.27517062425613403,\n",
       " 1.3966869115829468,\n",
       " 0.8200206756591797,\n",
       " 1.2733328342437744,\n",
       " 1.8752158880233765,\n",
       " -0.26043635606765747,\n",
       " -0.25434714555740356,\n",
       " -0.5083449482917786,\n",
       " -0.4746934771537781,\n",
       " 0.5181368589401245,\n",
       " -0.7880520224571228,\n",
       " -1.0134892463684082,\n",
       " -1.218672513961792,\n",
       " 0.05017152056097984,\n",
       " -1.120456576347351,\n",
       " 0.27788156270980835,\n",
       " 0.9411942958831787,\n",
       " 0.006401205901056528,\n",
       " -0.930730402469635,\n",
       " 1.0576444864273071,\n",
       " -0.23925679922103882,\n",
       " -1.145827054977417,\n",
       " -0.6300475597381592,\n",
       " 1.1278194189071655,\n",
       " -1.2063905000686646,\n",
       " 0.9970820546150208,\n",
       " 0.19278386235237122,\n",
       " -0.007951261475682259,\n",
       " -0.09606364369392395,\n",
       " -0.07706242054700851,\n",
       " -0.2503938376903534,\n",
       " -0.6244797706604004,\n",
       " 0.1376349925994873,\n",
       " -0.7340017557144165,\n",
       " -0.8596397638320923,\n",
       " 1.1598116159439087,\n",
       " 0.9823423624038696,\n",
       " 1.6424914598464966,\n",
       " 0.5156304836273193,\n",
       " 0.05478980392217636,\n",
       " 0.0763806477189064,\n",
       " -0.43896976113319397,\n",
       " -0.4920803904533386,\n",
       " -0.7315199971199036,\n",
       " -0.6774431467056274,\n",
       " -0.594514012336731,\n",
       " -1.1152616739273071,\n",
       " 1.629071593284607,\n",
       " 1.2899079322814941,\n",
       " -1.0033308267593384,\n",
       " 0.23016217350959778,\n",
       " 0.6457847952842712,\n",
       " -0.5836698412895203,\n",
       " 1.276261806488037,\n",
       " -0.5410290956497192,\n",
       " -1.011730670928955,\n",
       " -0.7056242227554321,\n",
       " 0.2095421403646469,\n",
       " 0.8116466403007507,\n",
       " 0.798926591873169,\n",
       " -0.012419403530657291,\n",
       " 0.8698182702064514,\n",
       " -0.17067211866378784,\n",
       " 0.27383509278297424,\n",
       " -0.8323073983192444,\n",
       " 0.5418063402175903,\n",
       " 0.5625594258308411,\n",
       " -0.3656674921512604,\n",
       " -0.2874636650085449,\n",
       " 0.1084892675280571,\n",
       " -1.2263174057006836,\n",
       " 0.1733023226261139,\n",
       " 0.1439158320426941,\n",
       " -1.5390666723251343,\n",
       " -2.2887723445892334,\n",
       " -1.3044341802597046,\n",
       " -0.611573338508606,\n",
       " -0.7547964453697205,\n",
       " -1.8412864208221436,\n",
       " 0.633389949798584,\n",
       " -0.4296393394470215,\n",
       " 0.36347416043281555,\n",
       " 1.1086699962615967,\n",
       " 0.05032524839043617,\n",
       " -0.8691086173057556,\n",
       " 0.6017647385597229,\n",
       " -0.2664742171764374,\n",
       " 0.780738353729248,\n",
       " 0.7290198802947998,\n",
       " -2.4655356407165527,\n",
       " 0.528957724571228,\n",
       " 0.8035411238670349,\n",
       " 0.33578211069107056,\n",
       " 0.407068133354187,\n",
       " -1.4453074932098389,\n",
       " -0.2661045789718628,\n",
       " -1.1377238035202026,\n",
       " 1.7993634939193726,\n",
       " -1.4693230390548706,\n",
       " -1.8085263967514038,\n",
       " -1.0955705642700195,\n",
       " -0.9040159583091736,\n",
       " 1.12571120262146,\n",
       " -0.6556857824325562,\n",
       " 0.30501413345336914,\n",
       " 0.5720982551574707,\n",
       " -0.2693397104740143,\n",
       " -0.6160601377487183,\n",
       " -1.4780904054641724,\n",
       " -0.785752534866333,\n",
       " 0.2756630480289459,\n",
       " 0.44647106528282166,\n",
       " 0.1730709969997406,\n",
       " -0.45474720001220703,\n",
       " 1.1746892929077148,\n",
       " -0.08740367740392685,\n",
       " -0.5022389888763428,\n",
       " -0.027263183146715164,\n",
       " -0.4362717866897583,\n",
       " 0.228054940700531,\n",
       " 0.8878318667411804,\n",
       " -0.5332167148590088,\n",
       " -0.12134137749671936,\n",
       " -0.7376627326011658,\n",
       " 1.4753509759902954,\n",
       " 1.4443367719650269,\n",
       " 0.36278319358825684,\n",
       " 0.30556389689445496,\n",
       " 0.7833701968193054,\n",
       " -0.3169518709182739,\n",
       " -0.25613996386528015,\n",
       " -0.26080021262168884]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# seems like a random number but it is understandable by computers\n",
    "embedding"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "693ae47e",
   "metadata": {},
   "source": [
    "# Visualizing Embeddings in 2D Space\n",
    "\n",
    "If we visualize multi-dimensional vectors onto 2D or 3D space, then we will be able to visualize them"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1c58c418",
   "metadata": {},
   "outputs": [],
   "source": [
    "# unit test items of deepface\n",
    "database = {\n",
    "    \"angelina_jolie\": [\n",
    "        \"dataset/img1.jpg\",\n",
    "        \"dataset/img2.jpg\",\n",
    "        \"dataset/img4.jpg\",\n",
    "        \"dataset/img5.jpg\",\n",
    "        \"dataset/img6.jpg\",\n",
    "        \"dataset/img7.jpg\",\n",
    "        # \"dataset/img8.jpg\",\n",
    "        \"dataset/img10.jpg\",\n",
    "        \"dataset/img11.jpg\",\n",
    "    ],\n",
    "    \"jennifer_aniston\": [\n",
    "        \"dataset/img3.jpg\",\n",
    "        \"dataset/img12.jpg\",\n",
    "        \"dataset/img53.jpg\",\n",
    "        \"dataset/img54.jpg\",\n",
    "        \"dataset/img55.jpg\",\n",
    "        \"dataset/img56.jpg\",\n",
    "    ],\n",
    "    \"scarlett_johansson\": [\n",
    "        \"dataset/img9.jpg\",\n",
    "        \"dataset/img47.jpg\",\n",
    "        \"dataset/img48.jpg\",\n",
    "        \"dataset/img49.jpg\",\n",
    "        \"dataset/img50.jpg\",\n",
    "        \"dataset/img51.jpg\",\n",
    "    ],\n",
    "    \"mark_zuckerberg\": [\n",
    "        \"dataset/img13.jpg\",\n",
    "        \"dataset/img14.jpg\",\n",
    "        \"dataset/img15.jpg\",\n",
    "        \"dataset/img57.jpg\",\n",
    "        \"dataset/img58.jpg\",\n",
    "    ],\n",
    "    \"jack_dorsey\": [\n",
    "        \"dataset/img16.jpg\",\n",
    "        \"dataset/img17.jpg\",\n",
    "        \"dataset/img59.jpg\",\n",
    "        \"dataset/img61.jpg\",\n",
    "        \"dataset/img62.jpg\",\n",
    "    ],\n",
    "    \"elon_musk\": [\n",
    "        \"dataset/img18.jpg\",\n",
    "        \"dataset/img19.jpg\",\n",
    "        \"dataset/img67.jpg\",\n",
    "    ],\n",
    "    # \"jeff_bezos\": [\n",
    "    #     \"dataset/img20.jpg\",\n",
    "    #     \"dataset/img21.jpg\",\n",
    "    # ],\n",
    "    \"marissa_mayer\": [\n",
    "        \"dataset/img22.jpg\",\n",
    "        \"dataset/img23.jpg\",\n",
    "    ],\n",
    "    \"sundar_pichai\": [\n",
    "        \"dataset/img24.jpg\",\n",
    "        \"dataset/img25.jpg\",\n",
    "    ],\n",
    "    \"katty_perry\": [\n",
    "        \"dataset/img26.jpg\",\n",
    "        \"dataset/img27.jpg\",\n",
    "        \"dataset/img28.jpg\",\n",
    "        \"dataset/img42.jpg\",\n",
    "        \"dataset/img43.jpg\",\n",
    "        \"dataset/img44.jpg\",\n",
    "        \"dataset/img45.jpg\",\n",
    "        \"dataset/img46.jpg\",\n",
    "    ],\n",
    "    \"matt_damon\": [\n",
    "        \"dataset/img29.jpg\",\n",
    "        \"dataset/img30.jpg\",\n",
    "        \"dataset/img31.jpg\",\n",
    "        \"dataset/img32.jpg\",\n",
    "        \"dataset/img33.jpg\",\n",
    "    ],\n",
    "    \"leonardo_dicaprio\": [\n",
    "        \"dataset/img34.jpg\",\n",
    "        \"dataset/img35.jpg\",\n",
    "        \"dataset/img36.jpg\",\n",
    "        \"dataset/img37.jpg\",\n",
    "    ],\n",
    "    \"george_clooney\": [\n",
    "        \"dataset/img38.jpg\",\n",
    "        \"dataset/img39.jpg\",\n",
    "        \"dataset/img40.jpg\",\n",
    "        \"dataset/img41.jpg\",\n",
    "    ],\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "b09e7203",
   "metadata": {},
   "outputs": [],
   "source": [
    "items = 0\n",
    "for identity, images in database.items():\n",
    "    items += len(images)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "07e038bc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "there are 12 identities with 58 imaged in the database\n"
     ]
    }
   ],
   "source": [
    "print(f\"there are {len(database)} identities with {items} imaged in the database\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "084ca765",
   "metadata": {},
   "outputs": [],
   "source": [
    "target_file = f\"facial_database_{model_name}.pkl\"\n",
    "\n",
    "if os.path.exists(target_file) is False:\n",
    "    vector_database = {}\n",
    "    for identity, images in tqdm(database.items()):\n",
    "        target_embeddings = []\n",
    "        for image in images:\n",
    "            emb = DeepFace.represent(\n",
    "                img_path=image,\n",
    "                model_name=model_name,\n",
    "                detector_backend=\"mtcnn\"\n",
    "            )[0][\"embedding\"]\n",
    "\n",
    "            target_embeddings.append(emb)\n",
    "        \n",
    "        vector_database[identity] = target_embeddings\n",
    "\n",
    "    with open(target_file, 'wb') as f:\n",
    "        pickle.dump(vector_database, f)\n",
    "else:\n",
    "    with open(target_file, 'rb') as f:\n",
    "        vector_database = pickle.load(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "99965e6b",
   "metadata": {},
   "outputs": [],
   "source": [
    "target_identities = []\n",
    "target_embeddings = []\n",
    "for identity, embeddings in vector_database.items():\n",
    "    for embedding in embeddings:\n",
    "        target_embeddings.append(embedding)\n",
    "        target_identities.append(identity)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "750093f6",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 12/12 [00:00<00:00, 70393.91it/s]\n"
     ]
    }
   ],
   "source": [
    "image_sources = []\n",
    "for identity, images in tqdm(database.items()):\n",
    "    for image in images:\n",
    "        image_sources.append(image.split(\"/\")[-1].split(\".\")[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "6a63664b",
   "metadata": {},
   "outputs": [],
   "source": [
    "pca = PCA(n_components=2)\n",
    "vectors_2d = pca.fit_transform(target_embeddings)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "42624887",
   "metadata": {},
   "outputs": [],
   "source": [
    "x, y = zip(*vectors_2d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "52de6169",
   "metadata": {},
   "outputs": [],
   "source": [
    "colors = [\n",
    "    'red', 'blue', 'green', 'orange', 'purple',\n",
    "    'brown', 'pink', 'gray', 'olive', 'cyan',\n",
    "    'magenta', 'gold', 'teal', 'navy', 'lime'\n",
    "]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6f3c632f",
   "metadata": {},
   "source": [
    "# Clusters\n",
    "\n",
    "Embedddings of identities seem creating clusters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "59f4ae38",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuMAAAIjCAYAAACplRUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAADIk0lEQVR4nOzdd3gU1f7H8fdm03sCCQkkEHpTQVBENPQmRRARu4BiuYiC5doLKIpevQr2cn+KBRsYsdEFNCoWqoKgtNBLKCEhgZTd+f0x2U02uwkJCWwSPq/n2SfZM2dmzpzdTb5z9sx3LIZhGIiIiIiIyGnn4+0GiIiIiIicqRSMi4iIiIh4iYJxEREREREvUTAuIiIiIuIlCsZFRERERLxEwbiIiIiIiJcoGBcRERER8RIF4yIiIiIiXqJgXERERETESxSMyxll6dKlWCwWli5d6u2mlCopKYlRo0Z5uxlSDY0aNYqkpCRvN6NUv//+O126dCEkJASLxcLq1au93SSpISrydy8pKYlBgwad9L4sFgsTJ0486fXLs83p06djsVhIS0ur0v1I7aRg/Azm+GPheAQGBtKiRQvGjRvHvn373Orv27ePe++9l1atWhEcHExISAgdO3Zk8uTJZGRkeNxHp06dsFgsvP7666f4aM4sBw8e5LnnnqNr167ExMQQGRlJ586d+fTTT93qenqd69evT79+/XjppZfIysrywhHUXq+99hrTp08/6fV3797NxIkTa1wgm5+fzxVXXMGhQ4d48cUX+eCDD2jUqNEp25/jxNrT46qrrjpl+z3dcnJymDhxoscBhJKf7eKPvXv3utT99NNPue6662jevDkWi4Xu3bt73N/vv//OuHHjaNu2LSEhITRs2JARI0bwzz//nIKjK91ff/3FxIkTFczKGcHX2w0Q73viiSdo3Lgxx48f58cff+T1119nzpw5rF27luDgYMD8Az1gwACOHj3KddddR8eOHQFYvnw5zzzzDD/88AMLFixw2e7GjRv5/fffSUpKYsaMGfzrX/867cdWWy1btoyHH36YAQMG8Mgjj+Dr68vnn3/OVVddxV9//cWkSZPc1nG8zvn5+ezdu5elS5cyYcIEXnjhBb766ivOOeccLxxJ7fPaa69Rt27dk/52Y/fu3UyaNImkpCTat2/vsuztt9/GbrdXvpGnwObNm9m2bRtvv/02Y8aMOW37vfPOOzn//PNdyqrztwcVlZOT4/w8lxZAOz7bxUVGRro8f/3111mxYgXnn38+Bw8eLHV/zz77LD/99BNXXHEF55xzDnv37uWVV16hQ4cO/PLLL5x11lmVOp7S/P333/j4FI0POv6Ode/evcpfz2PHjuHre2rDn+uvv56rrrqKgICAU7ofqR0UjAuXXHIJ5513HgBjxoyhTp06vPDCC3z55ZdcffXVZGRkcNlll2G1Wlm1ahWtWrVyWf+pp57i7bffdtvuhx9+SGxsLP/9738ZPnw4aWlpJ/1H1W63k5eXR2Bg4EmtX9u0bduWjRs3uow8jh07lt69e/Pss89y3333ERIS4rJO8dcZ4MEHH2Tx4sUMGjSISy+9lPXr1xMUFFShdmRnZ7vt51QpKCjAbrfj7+9/WvZXHfn5+Xm7CaXav38/4B4EVkZ53l/JyckMHz68yvZZE5X8bHvywQcf0KBBA3x8fMoMqO+++24++ugjl8/ZlVdeydlnn80zzzzDhx9+WGXtLu50Bq2n4/+I1WrFarWe8v1I7aBpKuKmZ8+eAGzduhWAN998k127dvHCCy+4BeIA9erV45FHHnEr/+ijjxg+fDiDBg0iIiKCjz76qNxtsFgsjBs3jhkzZtC2bVsCAgKYN28eALt27eLGG2+kXr16BAQE0LZtW9555x23bezcuZOhQ4cSEhJCbGwsd911F7m5uW71Spur2L17d7eRqOPHjzNx4kRatGhBYGAg8fHxDBs2jM2bNzvr2O12pk6dStu2bQkMDKRevXrceuutHD582GVbhmEwefJkEhISCA4OpkePHqxbt65c/dO4cWO3KQAWi4WhQ4eSm5vLli1byrWdnj178uijj7Jt27YT/pN1fCX+/fffM3bsWGJjY0lISHAunzt3LsnJyYSEhBAWFsbAgQPdjmfUqFGEhoayZcsW+vXrR0hICPXr1+eJJ57AMAxnvbS0NCwWC88//zxTp06ladOmBAQE8NdffwGwYcMGhg8fTnR0NIGBgZx33nl89dVXLvvKz89n0qRJNG/enMDAQOrUqcPFF1/MwoULXeqVZ1uOY//pp5+4++67iYmJISQkhMsuu4z09HRnvaSkJNatW8f333/vnC7geA8dOnSIe++9l7PPPpvQ0FDCw8O55JJLWLNmjXP9pUuXOkd5R48e7dyGY9qLpznj2dnZ3HPPPSQmJhIQEEDLli15/vnnXfoTij5Ts2fP5qyzznJ+dhyfK4esrCwmTJhAUlISAQEBxMbG0qdPH1auXElpRo0aRbdu3QC44oor3KZBLF682PneiIyMZMiQIaxfv95lGxMnTsRisfDXX39xzTXXEBUVxcUXX1zqPk+kPP3tUJWfa8d85h9//JFOnToRGBhIkyZNeP/99932m5GRwYQJE5yvXbNmzXj22Wed336kpaURExMDwKRJk5zvB0/znbOysrDZbKX2R2JiosvIc2m6dOnidsLbvHlz2rZt6/aalfTVV19hsVj4448/nGWff/45FouFYcOGudRt3bo1V155pfN58b/D06dP54orrgCgR48ezuMuOVWnPH3sSck+dLz3Nm3axKhRo4iMjCQiIoLRo0eTk5Pjsm5ubi533XUXMTExhIWFcemll7Jz5063fZQ2Z3zu3Ll069aNsLAwwsPDOf/8893+N/7666/079+fiIgIgoOD6datGz/99JNLnZP5nEr1pZFxceP4B1SnTh3A/AMbFBRUodGnX3/9lU2bNvHuu+/i7+/PsGHDmDFjBg899FC5t7F48WI+++wzxo0bR926dUlKSmLfvn107tzZGVjExMQwd+5cbrrpJjIzM5kwYQJgfg3Zq1cvtm/fzp133kn9+vX54IMPWLx4cfk7ogSbzcagQYP47rvvuOqqqxg/fjxZWVksXLiQtWvX0rRpUwBuvfVWpk+fzujRo7nzzjvZunUrr7zyCqtWreKnn35yjm4+9thjTJ48mQEDBjBgwABWrlxJ3759ycvLO+k2OuaJ1q1bt9zrXH/99Tz00EMsWLCAm2+++YT1x44dS0xMDI899hjZ2dmAOeo2cuRI+vXrx7PPPktOTg6vv/46F198MatWrXIJIG02G/3796dz58785z//Yd68eTz++OMUFBTwxBNPuOzr3Xff5fjx49xyyy0EBAQQHR3NunXruOiii2jQoAEPPPAAISEhfPbZZwwdOpTPP/+cyy67DDD/wU6ZMoUxY8bQqVMnMjMzWb58OStXrqRPnz4A5d6Wwx133EFUVBSPP/44aWlpTJ06lXHjxjnn6k+dOpU77riD0NBQHn74YcA8WQXYsmULs2fP5oorrqBx48bs27ePN998k27duvHXX39Rv359WrduzRNPPMFjjz3GLbfcQnJyMmAGSJ4YhsGll17KkiVLuOmmm2jfvj3z58/n3//+N7t27eLFF190qf/jjz+SkpLC2LFjCQsL46WXXuLyyy9n+/btzs/7bbfdxqxZsxg3bhxt2rTh4MGD/Pjjj6xfv54OHTp4bMett95KgwYNePrpp53TRhzHvWjRIi655BKaNGnCxIkTOXbsGC+//DIXXXQRK1eudDu5uOKKK2jevDlPP/202wmFJ1lZWRw4cMClLDo6ulz9DVX/uQbYtGkTw4cP56abbmLkyJG88847jBo1io4dO9K2bVvAnH7SrVs3du3axa233krDhg35+eefefDBB9mzZw9Tp04lJiaG119/nX/9619cdtllzoC25JSyHj16cPToUfz9/enXrx///e9/ad68+Qn7rrwMw2Dfvn3Otpfm4osvxmKx8MMPPzjbmJqaio+PDz/++KOzXnp6Ohs2bGDcuHEet9O1a1fuvPNOXnrpJR566CFat24N4PwJ5evjihoxYgSNGzdmypQprFy5kv/973/Exsby7LPPOuuMGTOGDz/8kGuuuYYuXbqwePFiBg4cWK7tT58+nRtvvJG2bdvy4IMPEhkZyapVq5g3bx7XXHMNYP7fu+SSS+jYsSOPP/44Pj4+vPvuu/Ts2ZPU1FQ6deoEnNznVKoxQ85Y7777rgEYixYtMtLT040dO3YYn3zyiVGnTh0jKCjI2Llzp2EYhhEVFWW0a9euQtseN26ckZiYaNjtdsMwDGPBggUGYKxatapc6wOGj4+PsW7dOpfym266yYiPjzcOHDjgUn7VVVcZERERRk5OjmEYhjF16lQDMD777DNnnezsbKNZs2YGYCxZssRZ3qhRI2PkyJFubejWrZvRrVs35/N33nnHAIwXXnjBra7jOFNTUw3AmDFjhsvyefPmuZTv37/f8Pf3NwYOHOhc1zAM46GHHjIAj+05kYMHDxqxsbFGcnKyS7njdf79999LXTciIsI499xzy9y+YzsXX3yxUVBQ4CzPysoyIiMjjZtvvtml/t69e42IiAiX8pEjRxqAcccddzjL7Ha7MXDgQMPf399IT083DMMwtm7dagBGeHi4sX//fpft9urVyzj77LON48ePu2yjS5cuRvPmzZ1l7dq1MwYOHFjmMZV3W45j7927t8vrdddddxlWq9XIyMhwlrVt29blfeNw/Phxw2azuZRt3brVCAgIMJ544gln2e+//24Axrvvvuu2jZEjRxqNGjVyPp89e7YBGJMnT3apN3z4cMNisRibNm1ylgGGv7+/S9maNWsMwHj55ZedZREREcbtt9/utu8TWbJkiQEYM2fOdClv3769ERsbaxw8eNBlvz4+PsYNN9zgLHv88ccNwLj66qsrtD9Pj61bt5a7v6vyc20Y5t8TwPjhhx+cZfv37zcCAgKMe+65x1n25JNPGiEhIcY///zjss0HHnjAsFqtxvbt2w3DMIz09HQDMB5//HG39n366afGqFGjjPfee8/44osvjEceecQIDg426tat61zfk9Leo6X54IMPDMD4v//7vxPWbdu2rTFixAjn8w4dOhhXXHGFARjr1683DMMwUlJSDMBYs2aNs17Jv8MzZ850+1tdvG55+rg0JfvT8d678cYbXepddtllRp06dZzPV69ebQDG2LFjXepdc801btt0/M3YunWrYRiGkZGRYYSFhRkXXHCBcezYMZf1He8zu91uNG/e3OjXr5/L35mcnByjcePGRp8+fZxlJ/s5lepJ01SE3r17ExMTQ2JiIldddRWhoaF88cUXNGjQAIDMzEzCwsLKvb2CggI+/fRTrrzySiwWC2BOh4iNjWXGjBnl3k63bt1o06aN87lhGHz++ecMHjwYwzA4cOCA89GvXz+OHDni/Ipuzpw5xMfHu4zmBwcHc8stt5R7/yV9/vnn1K1blzvuuMNtmeM4Z86cSUREBH369HFpX8eOHQkNDWXJkiWAOVqYl5fHHXfc4VwXcI7sV5Tdbufaa68lIyODl19+ucLrh4aGljurys033+wyF3LhwoVkZGRw9dVXuxyz1WrlggsucB5zccVHxBzfcuTl5bFo0SKXepdffrnza3owpx4sXryYESNGOEdEDxw4wMGDB+nXrx8bN25k165dgDl3ed26dWzcuNHjcVRkWw633HKLy+uVnJyMzWZj27ZtJ+y3gIAA5zQBm83GwYMHCQ0NpWXLlif91fKcOXOwWq3ceeedLuX33HMPhmEwd+5cl/LevXs7R3rBHGENDw93mdYUGRnJr7/+yu7du0+qTcXt2bOH1atXM2rUKKKjo13226dPH+bMmeO2zm233VahfTz22GMsXLjQ5REXF1fu/q7Kz7VDmzZtnN9qAMTExNCyZUuXfp45cybJyclERUW5bLN3797YbDZ++OGHEx77iBEjePfdd7nhhhsYOnQoTz75JPPnz+fgwYM89dRTFerH0mzYsIHbb7+dCy+8kJEjR56wfnJyMqmpqYD5rcWaNWu45ZZbqFu3rrM8NTWVyMjISl0MWp4+rqiS773k5GQOHjxIZmYmgPP9WvLzVp6/2wsXLiQrK4sHHnjAbc664322evVqNm7cyDXXXMPBgwed74ns7Gx69erFDz/84JzCVJWfU/E+TVMRXn31VVq0aIGvry/16tWjZcuWLnMLw8PDK5T+bsGCBaSnp9OpUyc2bdrkLO/Rowcff/wxzz77LD4+Phw5coRjx445l/v7+7v8wy6ZHSA9PZ2MjAzeeust3nrrLY/7dlxEtm3bNpo1a+YSOAG0bNmy3MdR0ubNm2nZsmWZV+Fv3LiRI0eOEBsbe8L2AW5fJcfExBAVFVXhtt1xxx3MmzeP999/n3bt2lV4/aNHj5ba5pJKvi6OYNdxrUFJ4eHhLs99fHxo0qSJS1mLFi0A3OZXltzXpk2bMAyDRx99lEcffdTj/vbv30+DBg144oknGDJkCC1atOCss86if//+XH/99c6vzyuyLYeGDRu6LHe8ViXnDXtit9uZNm0ar732Glu3bnWZ3+uYIlJR27Zto379+m4ny46v80ueJJRsP5jHULz9//nPfxg5ciSJiYl07NiRAQMGcMMNN7i9ZuVtH3j+3LVu3Zr58+e7XaRZ8jU/kbPPPpvevXu7lZe3v6vyc+1Qnn7euHEjf/zxh8vJZlnbLK+LL76YCy64wO3E9mTs3buXgQMHEhERwaxZs8p1QWJycjJvvPEGmzZtYvPmzVgsFi688EJnkH7zzTeTmprKRRddVK457KUpTx9XdpvFP9/h4eFs27YNHx8flxNaKN//Fcf0z7JOQBx/S8s66Tly5AhRUVFV+jkV71MwLnTq1KnMK/FbtWrF6tWrycvLK1cmC8fo94gRIzwu//777+nRowfjx4/nvffec5Z369bN5QKdkpk9HCMC1113Xal/rE4mPV/JgN3BZrNV+Gp4u91e5jcApf3jrYxJkybx2muv8cwzz3D99ddXeP2dO3dy5MgRmjVrVq76pb0uH3zwAXFxcW71K5NCrLR93XvvvfTr18/jOo7j6Nq1K5s3b+bLL79kwYIF/O9//+PFF1/kjTfeYMyYMRXalkNp7wejHHObn376aR599FFuvPFGnnzySaKjo/Hx8WHChAmnLV1hedo/YsQIkpOT+eKLL1iwYAHPPfcczz77LCkpKVxyySWnvI0VzehTmqrs74p+rsvTz3a7nT59+nDfffd5rOs4QT0ZiYmJ/P333ye9PphB3yWXXEJGRgapqanOOfYn4rjo9ocffmDLli106NCBkJAQkpOTeemllzh69CirVq2q9Mh9ZT6Lp3ObFeF4Xz733HNuaU0dQkNDAe9/TqVqKRiXExo8eDDLli3j888/5+qrry6zbnZ2Nl9++SVXXnmlxws+77zzTmbMmEGPHj247777uO6665zLTjQi7Lh63WazeRwJK65Ro0asXbsWwzBcgm1P/6CioqI83rRo27ZtLqMMTZs25ddffyU/P7/UFHNNmzZl0aJFXHTRRWUGFY5MKBs3bnTZR3p6eoVGdl599VUmTpzIhAkTuP/++8u9XnEffPABQKkB6Yk4RoliY2NP+LqA+Q9ny5YtLsGG44YiJ0p96egrPz+/cu0rOjqa0aNHM3r0aI4ePUrXrl2ZOHEiY8aMqfC2yqu0k7tZs2bRo0cP/u///s+lPCMjw+WC29LW96RRo0YsWrSIrKwsl9HxDRs2OJefjPj4eMaOHcvYsWPZv38/HTp04KmnnqrwP3nH/j197jZs2EDdunVPWWrM8vZ3VX6uK6Jp06YcPXr0hO+9irwfHLZs2VKpE//jx48zePBg/vnnHxYtWuQyXfBEGjZsSMOGDUlNTWXLli3OqSRdu3bl7rvvZubMmdhsNrp27Vrmdk7muE+1Ro0aYbfbnd+mOJTnxMfxd3Lt2rWlDnw46oSHh5frb1JVfU7F+zRnXE7otttuIz4+nnvuucfjXdj279/P5MmTAfjiiy/Izs7m9ttvZ/jw4W6PQYMG8fnnn5Obm0ubNm3o3bu38+G4kVBprFYrl19+OZ9//jlr1651W148xdyAAQPYvXs3s2bNcpbl5OR4nN7StGlTfvnlF5csJt988w07duxwqXf55Zdz4MABXnnlFbdtOEZORowYgc1m48knn3SrU1BQ4Az6e/fujZ+fHy+//LLLqMvUqVNLOXp3n376KXfeeSfXXnstL7zwQrnXK27x4sU8+eSTNG7cmGuvvfakttGvXz/Cw8N5+umnyc/Pd1te/HVxKN6HhmHwyiuv4OfnR69evcrcV2xsLN27d+fNN99kz549Ze6r5I1NQkNDadasmTO9ZUW2VREhISEeT+6sVqvbCNvMmTPd5qU7gtPS7mpb3IABA7DZbG7vyRdffBGLxVLhf8o2m40jR464lMXGxlK/fn2PaUFPJD4+nvbt2/Pee++5HM/atWtZsGABAwYMqPA2y6u8/V2Vn+uKGDFiBMuWLWP+/PluyzIyMigoKABw3njN0z48vUfnzJnDihUr6N+/f4XbBOZ74Morr2TZsmXMnDmTCy+8sMLbSE5OZvHixfz222/OYLx9+/aEhYXxzDPPEBQUdMK/9xX5HJwujs/TSy+95FJenr/bffv2JSwsjClTpnD8+HGXZY73WceOHWnatCnPP/88R48edduG4/Wu6s+peJ9GxuWEoqKi+OKLLxgwYADt27d3uQPnypUr+fjjj51/sGfMmEGdOnVKTcV26aWX8vbbb/Ptt9+65Z0tj2eeeYYlS5ZwwQUXcPPNN9OmTRsOHTrEypUrWbRoEYcOHQLMiwxfeeUVbrjhBlasWEF8fDwffPCB8x9bcWPGjGHWrFn079+fESNGsHnzZj788EO3eYE33HAD77//Pnfffbfzn0x2djaLFi1i7NixDBkyhG7dunHrrbcyZcoUVq9eTd++ffHz82Pjxo3MnDmTadOmMXz4cGJiYrj33nuZMmUKgwYNYsCAAaxatYq5c+eWKy3hb7/9xg033ECdOnXo1auX29fnXbp0cZs7OHfuXDZs2EBBQQH79u1j8eLFLFy4kEaNGvHVV1+d9I0wwsPDef3117n++uvp0KEDV111FTExMWzfvp1vv/2Wiy66yCXQCQwMZN68eYwcOZILLriAuXPn8u233/LQQw+VazTv1Vdf5eKLL+bss8/m5ptvpkmTJuzbt49ly5axc+dOZx7pNm3a0L17dzp27Eh0dDTLly93pgKr6LYqomPHjrz++utMnjyZZs2aERsbS8+ePRk0aBBPPPEEo0ePpkuXLvz555/MmDHD7XVq2rQpkZGRvPHGG4SFhRESEsIFF1zgcS714MGD6dGjBw8//DBpaWm0a9eOBQsW8OWXXzJhwgS39/CJZGVlkZCQwPDhw2nXrh2hoaEsWrSI33//nf/+978V7gswv3K/5JJLuPDCC7npppucqQ0jIiI85suuKuXt76r8XFfEv//9b7766isGDRrkTMmXnZ3Nn3/+yaxZs0hLS6Nu3boEBQXRpk0bPv30U1q0aEF0dDRnnXUWZ511Fl26dOHcc8/lvPPOIyIigpUrV/LOO++QmJjolkb2hx9+cF4Ump6eTnZ2tnMQpWvXrs6R6nvuuYevvvqKwYMHc+jQIbf7DxT/NrM0ycnJzJgxA4vF4py2YrVa6dKlC/Pnz6d79+4nnPLYvn17rFYrzz77LEeOHCEgIMCZCMBb2rdvz9VXX81rr73GkSNH6NKlC999953LtVGlCQ8P58UXX2TMmDGcf/75zlz6a9asIScnh/feew8fHx/+97//cckll9C2bVtGjx5NgwYN2LVrF0uWLCE8PJyvv/76lHxOxctOd/oWqT7Kk/KuuN27dxt33XWX0aJFCyMwMNAIDg42OnbsaDz11FPGkSNHjH379hm+vr7G9ddfX+o2cnJyjODgYOOyyy4rc19AqWmb9u3bZ9x+++1GYmKi4efnZ8TFxRm9evUy3nrrLZd627ZtMy699FJnqq/x48c7U5GVTJf13//+12jQoIEREBBgXHTRRcby5cvdUhs62v/www8bjRs3du57+PDhxubNm13qvfXWW0bHjh2NoKAgIywszDj77LON++67z9i9e7ezjs1mMyZNmmTEx8cbQUFBRvfu3Y21a9eWmmqxOMdrV9qjeFq8knX9/f2NuLg4o0+fPsa0adOMzMzMMvdVcjulvV+WLFli9OvXz4iIiDACAwONpk2bGqNGjTKWL1/urDNy5EgjJCTE2Lx5s9G3b18jODjYqFevnvH444+7pKFzpDZ87rnnPO5r8+bNxg033GDExcUZfn5+RoMGDYxBgwYZs2bNctaZPHmy0alTJyMyMtIICgoyWrVqZTz11FNGXl5ehbdV2rE70usVfz/t3bvXGDhwoBEWFmYAzvfQ8ePHjXvuucf5el900UXGsmXLPL7PvvzyS6NNmzaGr6+vy+tZMrWhYZipJe+66y6jfv36hp+fn9G8eXPjueeec0mNZhilf6aKv99yc3ONf//730a7du2MsLAwIyQkxGjXrp3x2muveXwdPPVFydSGhmEYixYtMi666CIjKCjICA8PNwYPHmz89ddfLnUc6eUc6S0rsz/DqFh/V+XnulGjRh5Tanrab1ZWlvHggw8azZo1M/z9/Y26desaXbp0MZ5//nmX9+nPP/9sdOzY0fD393dJoffwww8b7du3NyIiIgw/Pz+jYcOGxr/+9S9j7969bvt39K+nR/GUfN26dSvzb0t5rFu3zgCM1q1bu5RPnjzZAIxHH33UbR1Pf/fefvtto0mTJobVanX5nFWkjz0pecylvfdKpic0DMM4duyYceeddxp16tQxQkJCjMGDBxs7duw4YWpDh6+++sro0qWL87PQqVMn4+OPP3aps2rVKmPYsGFGnTp1jICAAKNRo0bGiBEjjO+++84wjMp9TqV6shjGaboyQUTOeKNGjWLWrFkev4IVERE5E2nOuIiIiIiIlygYFxERERHxEgXjIiIiIiJeojnjIiIiIiJeopFxEREREREvUTAuIiIiIuIluulPCXa7nd27dxMWFlYtb8crIiIicqYzDIOsrCzq16+Pj0/NHltWMF7C7t27SUxM9HYzREREROQEduzYQUJCgrebUSkKxksICwsDzBc3PDzca+3Iz89nwYIFztsuS8WpDytH/Vd56sPKUx9Wnvqw8tSHlVfVfZiZmUliYqIzbqvJFIyX4JiaEh4e7vVgPDg4mPDwcH3wT5L6sHLUf5WnPqw89WHlqQ8rT31YeaeqD2vDlOKaPclGRERERKQGUzAuIiIiIuIlCsZFRERERLxEwbiIiIiIiJcoGBcRASYunYhlUvW5EGhp2lIskywsTVta4XVHzR5F6NOhVd8oERGpcgrGRUQq6aM/P2LqL1Pdyndn7ebjPR+zet/q094mERGpGRSMi4hUUmnB+J6je/h036f8se+PCm+za6OuHHv4GF0bda2CFoqISHWlYFxEzmjZedneboJHPhYfAn0D8bHoz7SISG2mv/Ii4lVZuVlMmDeBpKlJBEwOIPa5WPp80IeVe1Y66/y681cGzBhA1LNRhDwdwjmvn8O0X6Y5l/+x7w9GzR5Fk2lNCJwcSNzzcdz45Y0czDnosi/HvPC/0v/ims+vIerZKC5+9+Iy2/fhHx/S8a2OBD0VRPSz0Vw16yp2HNnhXN59ene+3fgt245swzLJgmWShaSpSSxNW8qF714IwJhvxjiXTV89vVz9Utqc8ZnrZjrbU/c/dbku5Tp2Ze7yuI1dmbsY+slQQp8OJea5GO5dcC82u82lzvM/P0+X/+tCnf/UIeipIDq+1ZFZf81y25ZlkoVxc8Yxe8NsznrtLAImB9D2tbbM2zTPpV55Xs+NBzdy+WeXE/d8HIGTA0l4IYGrZl3FkeNHnHUK7AU8+f2TtHqtFcPXDKf5q8156LuHyC3Iddlf0tQkBn00iB+3/0intzsRODmQJtOa8P6a98vVzyIi3qY7cIqIV9327W3M+msW484fR5uYNhw8dpAft//I+vT1dIjvwMLNCxn08SDiQ+MZf8F44kLjWJ++nm82fsP4zuMBWLh5IVsOb2F0+9HEhcaxLn0db614i3Xp6/jlpl/c7tB2xcwraB7dnKd7Po2BUWrbnvrhKR5d8igj2o5gzLljSM9J5+XfXqbr9K6sunUVkYGRPJz8MEdyj7Azcycv9nsRgFD/UFrXbc3jXR9n0g+TGNN+DN0adwOgS2KXk+6r6aunM/rL0Zxf/3ym9JrCvqP7mPbrNH7a8ZOzPQ42w0a/D/txQYMLeL7v8yzasoj/LvsvTaOa8q/z/+WsN+3XaVza4lKuPfta8mx5fLLuE66YeQXfXP0NA1sMdNn/j9t/JGV9CmPPH0uYfxgv/fYSl392OdsnbKdOcJ1yvZ55tjz6fdiPXFsud3S6g7jQOHZl7eKbf74h43gGEYERAIz5agzvrXmPYa2G0Tu0NzlROUz5cQrrD6zniyu/cGnXpkObGP7ZcG469yZGthvJO6vfYdTsUXSM70jb2LYn3d8iIqeFIS6OHDliAMaRI0e82o68vDxj9uzZRl5enlfbUZOpDyvndPVfxJQI4/Zvb/e4rMBWYDSe2tho9GIj4/Cxwy7L7Ha78/ecvBy3dT/+82ODiRg/pP3gLHt8yeMGEzGunnW1W33HMoe0w2mGdZLVeOqHp1zq/bnvT8P3CV+X8oEzBhqNXmzkts1l25YZTMT43/L/eTy+sizZusRgIsaSrUsMwzCMvII8I/a5WOOs184yjuUfc9b75u9vDCZiPLb4MWfZyC9GGkzEeGLpEy7bPPeNc42Ob3Z0KSvZd3kFecZZr51l9Hyvp0s5EzH8n/Q3Nh3c5Cxbs3eNwUSMl3992VlW1utpGIaxas8qg4kYM9fNLLXO6j2rDSZijPlyjMv78N759xpMxFi8ZbGzbqMXG7m9zvuP7jcCngww7pl/T6n7OJPob2HlqQ8rr6r7sLrEa1VB01RExKsiAyP5ddev7M7a7bZs1d5VbM3YyoTOE1xGfQGX0e4gvyDn78cLjnMg5wCdEzoDuEyPcLjtvNtO2K6U9SnYDTsj2o7gQM4B5yMuNI7m0c1ZkrakvIdYJZbvXs7+7P2MPW8sgb6BzvKBLQbSqm4rvt34rds6JY8zuWEyWw5vcSkr3neHjx3mSO4Rkhsme+y33k160zS6qfP5OfXOITwg3GWbZb2eABEB5sj3/E3zycnP8VhnzsY5ANx94d0u5fd0uQfA7VjbxLQhuVGy83lMSAwt67Z0O1YRkepI01RExKv+0+c/jJw9ksQXE+kY35EBzQdwQ7sbaBLVhM2HNgNwVuxZZW7j0LFDTFo6iU/WfcL+7P0uy47kHnGr3ziy8QnbtfHQRgwMmr/c3ONyP6vfCbdRlbYd2QZAy7ot3Za1qtuKH7f/6FIW6BtITEiMS1lUUBSHjx92Kfvmn2+Y/MNkVu9dTa6taD62Bfec6w3DG7qVRQW6brOs1xOgcVRj7u58Ny/88gIz/pxBcqNkLm1xKdedc51zisq2I9vwsfjQLLoZ2Iv2FRcaR2RgpLMvnO2KOHG7RESqKwXjInJa2ew2UrensidrD/Fh8Vze+nKSGybzxYYvWLB5Ac/9/BzP/vQsKSNSyr3NETNH8POOn/l3l3/TPq49of6h2A07/Wf0x27Y3eoXHw0ujd2wY8HC3GvnYvWxui0P9a/eN9WxWtzbXFLqtlQu/fhSujbqymsDXyM+NB4/qx/vrn6Xj/78yH2bHvoBwDCK5t2PaDui1NfzkuaXAPDffv9lVPtRfPn3lyzYvIA7593JlB+n8MuYX0gIT3Buy2KxlDmn/0THWrxdIiLVlYJxETltUtanMH7eeHZm7nSWJYQnMK3/NMaeP5ax549lf/Z+OrzZgadSn2Jq/6kArN2/lt5Nenvc5uFjh/lu63dM6j6Jx7o95izfeHBjpdraNKopBgaNoxrTok6LMuuWvEDUWe5hdPlkNYpoBMDfB/6mZ+OeLsv+PvC3c3lFfL7+cwJ9A5l/3XwCfAOc5e+ufrdSbY0Pi/f4ejqCcYCz653N2fXO5pGuj/Dzjp+56J2LeGP5G0zuOZlGEY2wG3Y2HtxIs8hmznX2Hd1HxvGMkzpWEZHqSnPGReS0SFmfwvDPhrsE4gA7M3cy/LPhpKw3R8JjQ2KpH1afXFsuHeI70DiyMVN/mUrG8QyX9Ryjno7R2pKjoJ5uwlMRw1oPw2qxMun7SW7bNgzDJW1iiF+Ix+kwwX7BAG5tPxnn1T+P2JBY3ljxhkt6v7kb57L+wHoGNh9YxtqeWS1WLBYLNqMo3WFaRhqzN8w+qTba7DaX9ITg+noCZOZmUmAvcKlzduzZ+Fh8nMc1oPkAwP01fGHZCwAndawiItWVRsZF5JSz2W2Mnze+1CkHBgY3fXkT6dnpLE5bzO+7f+e/ff+Lj8WH1we+zuCPB9P+jfaMbj+a+LB4NhzYwLr0dcy/bj7hAeF0bdSV//z8H/Lt+TQIa8CCLQvYenhrpdrcNLopk3tO5sHvHiQtI42hLYcSFhDG1sNb+WLDF9zS8Rbu7XIvAB3jO/Lpuk+5e/7dnF//fEL9QxnccjBNo5oSYg3hrZVvERkUSYh/CBc0uIDGUSees16Sn9WPZ3s/y+gvR9NtejeuPutq9mWbqQ2TIpO468K7KrzNgS0G8sIvL9D/w/5cc/Y17M/ez6u/v0qz6GYnddfQrLwsEl5IYHib4bSr145Q/1AWbV3kfD0BFm9dzLg547iizRW0qNOCAnsBH/zxAVaLlcvbXA5Au7h2jGw3krdWvsWhY4eIzorm868/54M/P2Boq6H0aNyjwm0TEamuFIyLyCmXuj3VbUS8pIzcDCbMn0DLOi15bcBrzlzY/Zr1Y8nIJUz6fhL/XfZf7IadptFNubnDzc51Pxr2EXfMvYNXf38VwzDo27Qvc6+dS/0X6leq3Q9c/AAt6rTgxV9eZNL3kwBIjEikb9O+XNryUme9seePZfW+1by7+l1e/OVFGkU0YnDLwfhZ/RjfcDxfZH3Bbd/eRoG9gHeHvHtSwTjAqPajCPYL5pkfn+H+RfcT4h/CZa0u49nez7plmymPno178n+X/h/P/PgME+ZNoHFUY57t/SxpGWknFYwH+wUz9vyxLNi8wJmNpll0M5fXs129dvRr2o+v//maXVm7CPYLpl29dsy9dq4zAw7A/y79H02imjB99XR2HNlBfGY8D178II93e7zC7RIRqc4shq5wcZGZmUlERARHjhwhPDzca+3Iz89nzpw5DBgwAD+/05u1obZQH1ZOVfbfx39+zDUp15yw3kfDPuLqs6+u1L6qk8r04XdbvqP3B71JHZ3KxQ3LvktobabPceWpDytPfVh5Vd2H1SVeqwqaMy4ip1x8WHyV1jsT7Dm6B4C6wXW93BIRETmVNE1FRE655IbJJIQnsCtzl8d54xYsJIQnkNww2cPatcux/GMeL/Z0sNltfLvxW6b9Oo2E8IQTZnIREZGaTcG4iJxyVh8r0/pPY/hnw7Hgmjvakf5vav+ppeaxrk0+Xfcpo78cXWYdf6s/Z8eezbtD3sXHoi8wRURqMwXjInJaDGs9jFkjZnnMMz61/1SGtR7mxdadPv2a9mPh9QvLrNMxviNRQVGnqUUiIuJNCsZF5LQZ1noYQ1oOcbkDZ3LD5DNiRNwhPixec+NFRMSpRn3/+cMPPzB48GDq16+PxWJh9uzZLstHjRqFxWJxefTv3987jRURj6w+Vrondefqs6+me1L3MyoQFxERKalGBePZ2dm0a9eOV199tdQ6/fv3Z8+ePc7Hxx9/fBpbKCIiIiJSfjVqmsoll1zCJZdcUmadgIAA4uLiTlOLREREREROXo0Kxstj6dKlxMbGEhUVRc+ePZk8eTJ16tQptX5ubi65ubnO55mZmYCZnD4/P/+Ut7c0jn17sw01nfqwctR/lac+rDz1YeWpDytPfVh5Vd2Htem1qLF34LRYLHzxxRcMHTrUWfbJJ58QHBxM48aN2bx5Mw899BChoaEsW7YMq9XzvNSJEycyadIkt/KPPvqI4ODgU9V8ERERETlJOTk5XHPNNbXiDpy1KhgvacuWLTRt2pRFixbRq1cvj3U8jYwnJiZy4MABr764+fn5LFy4kD59+ujWuydJfVg56r/KUx9Wnvqw8tSHlac+rLyq7sPMzEzq1q1bK4LxWjdNpbgmTZpQt25dNm3aVGowHhAQQEBAgFu5n59ftfjAVZd21GTqw8pR/1We+rDy1IeVpz6sPPVh5VVVH9am16FGZVOpqJ07d3Lw4EHi45XTV0RERESqnxo1Mn706FE2bdrkfL5161ZWr15NdHQ00dHRTJo0icsvv5y4uDg2b97MfffdR7NmzejXr58XWy0iIiIi4lmNCsaXL19Ojx49nM/vvvtuAEaOHMnrr7/OH3/8wXvvvUdGRgb169enb9++PPnkkx6noYiIiIiIeFuNCsa7d+9OWdebzp8//zS2RkRERESkcmr1nHERERERkepMwbiIiIiIiJcoGBcRERER8RIF4yIiIiIiXqJgXERERETESxSMi4iIiIh4iYJxEREREREvUTAuIiIiIuIlNeqmPyJyatnsNlK3p7Inaw9xwXHebo6IiEitp2BcRABIWZ/C+Hnj2Zm5E4AgnyA+Pudjvv77a4adNczLrRMREamdFIyLCCnrUxj+2XAMDLdl139xPVhhWGsF5CIiIlVNc8ZFznA2u43x88Z7DMQdJsybgM1uO42tEhEROTMoGBc5w6VuT3VOTfHEwGBH5g5St6eexlaJiIicGRSMi5zh9mTtqdJ6IiIiUn4KxkXOcPFh8VVaT0RERMpPwbjIGS65YTIJ4QlYsHhcbsFCYngiyQ2TT3PLREREaj8F4yJnOKuPlWn9pwGUGpBP7T8Vq4/1dDZLRETkjKBgXEQY1noYs0bMokF4A7dlH1z2gdIaioiInCLKMy4igBmQD2k5xOUOnJlrMxnccrC3myYiIlJrKRgXESerj5XuSd0ByM/PZ87aOd5tkIiISC2naSoiIiIiIl6iYFxERERExEsUjIuIiIiIeImCcRERERERL9EFnCJS5Wx2mzMrS3xYPMkNk5WnXERExAMF4yJSpVLWpzB+3nh2Zu50liWEJzCt/zTlKxcRESlB01REpMrMWjeLyz+73CUQB9iVuYvhnw0nZX2Kl1omtdruUbApydutEBE5KQrGRaRKzFw3k6s+v8rjMgMDgAnzJmCz205ns0RERKo1BeMiUmkp61MYMWsENqP0QNvAYEfmDlK3p57GlomIiFRvmjMuIuXm6cJMgPHzxpd7G3uy9pyq5smpYs8GnxBvt0JEpFbSyLiIlEvK+hSSpiXR470eXJNyDT3e60HStCSeSn3KbY54WeLD4k9hK2uZ7KWQdh78HQibm8LhNyF9ImywuNY78iFs7Qh/B8E/0bDrKsjf4b69zJlF9TbWhd3XQf4u1zq7R8HfoZC3GXYMgH/CYPe15jL7Mdh3p7nuP2Gw81Jz/Q0Ws13F5e+CPTfCxnrwdwBsaQsZ75xUN8SGrMC6q5e5z3/CIe18OPJR2SvZs2HfPbApsXD/LeHg82AYrvWMAjjwpNm/fweYc8/THwJ7rmu9TUmwYxDk/AhpnQpfkyZw5H33fdsyYN+Eon1vbgYHnwXDXrhPw9zeziEe2n0c/omAvbeWq29EpObTyLiInFDK+hSGfzbcOffbYVfmLh5f+ni5t5MYnugcTZcTOL4KdvYH33ioOwkMGxx8AqwxrvUOPAUHHoWwERA5BmzpcPhl2N4VklaBNdKslzEd9o6GwPMhZgoU7IPD0+DYT671ACiAHf0g6GKIeR58gs3iPaMg6zMIvx6COkPO97BzoHvbC/bBts6ABaLGmW3Ongt7bwJ7JkRPKHc3WDLfp3ODyWBvA9EPmu08vgqy50HENZ5XMgzzRCFnCUTcBIHtIXs+pP8bCnZBvReL6u4ZA5nvQdhwCL4Hjv0KB6dA7npI+MJ1u/mbYNdwiLwJIkaaJxd7RkFgRwhoa9ax58D2buZ+Im8F34Zw7GdIfxAK9kC9qWCxQMR1cPA/YDsE1uiifRz92uyj8OvK3UciUrMpGBeRMtnsNsbPG+8WiAMey8oytf9U5RsvrwOPA1Zo+BP41TfLwkfAltZFdfK3mfXqToa6DxWVhw2DrefC4dfMciMf0u+HgLOg4Q/gE2jWC74Ydg6CQy9CzKSi9Y1cCLsCYqcUlR1faQbiUROKgtmosbBnNOSucW17+sOADRr/CdY6hXVvg11Xw4GJZpDqE3TiPrAdwXrgLg4fb05Yk2X4BYQVa2MZ772jX0HO4sJ+ebhw/7fDrivME5CoceDfFI6vMQPxiDEQ/3bRMfnGwqHnIXsJhPQo2m7e32b/BReeUIaNgM2JcORdiH3eLDv0gvmtQuNV4N+8cJu3gm99OPQcRN8DfokQcQMcfAoyPzP7xiHzQ/BLMk+EROSMoGkqIlKmZTuXVWgaiidWi5WZw2cqz3h5GTbIXgRhQ4sCcQD/ZhB6SdHzrBTAbgbpBQeKHtY4MxDMWWLWO74cbPshcmxRIA4QOhD8W0H2t+5tiPqX6/Oj8wrLx5aod0eJthuQ9TmEDjZ/L96ukH5gP2IG9uWRvRCLkcXGQ8Nc2w3m6HKp680BrBB1p2t59D2AYY7SO+sB0Xd7qId7v/i3KQrEAXxjwL8l5G0pKsuaadbxiSpx7L0BG+T8ULitFhB4AWTOKFrXdgiOzoXwa8s+PhGpVTQyLiJl2nt0b7nrWrB4HC3/+PKPGd52eFU2q3az7QfjGPg1c19WvCxvI2DAluaet2PxM3/mbzN/+rd0r+PfCo79WKLQF3wTXIsKtgE+4Ne49PaAOU3GngEZb5kPT2z7PZeXlL8ZgKzcRuWr71xvmzkSbQ1zLfdvXbTc+dPHPMkpzjcOfCKL6jn4NXTfl08U2A8XPc/bCLl/wKYY97rgeuwRN8C+ceZ+/BqZc/rJN6cBicgZQ8G4iJQpLjSuXPUmdZ/E2yvfdhlFTwxPZGr/qRoRLw/DBjmpYNsD+JdzJTtggYS5YPEw/ccn9OTaYgkAy8l+cVp4kWL4dea8ak8CzjnJbZ8q5R2FLmWKlcuUGTsE94E693mu69+i6Pfwq2D/XXBkhjmdKPNDCDwPAjycNIlIraVgXETKdGHChSSEJ7Arc5fHUW8LFhLCE3g4+WEeTn7YLfWh5oiXQ1YK7BsPBSWmA+UsASa5luVvKvrdrylggH9j1yCvJL/CkeW8vyGkp+uyvL+LlpfFtxFgh/ytRXOhS7YHzIs1fcIAW+HUjErwawpAWMC2E1QsuV4jc5qPLct1dDxvQ9Fy50+7OZodUGwufsE+c3S/PP3iqc3G0fIduzUaQgaaU1UirjUvpo2dWvF9ikiNpjnjIlImq4+Vaf2nAWbgXZzjuePCTKuPle5J3bn67KvpntRdgXh5ZKWYGTpKBuIAx1Ih439Fz/M2mXOKHcKGAVY4MMlDyj4DbAfN3wPPA2ssZLzhmrLv6FzIW28GhCcS2s/8efg11/LDL7s+t1gh7HJz3njuWvftFKSfeF8OIX0xLGG0iP7cTPlXXFkXcIYMAGyQ8Ypr+aEXAQuEXFKsHnB4aol6LxQuL0e/lBQ+Ao4tg6Pz3ZfZMsxUisVFXA95f8H+fwNWc7RcRM4oGhkXqUY83VSnOgS0w1oPY9aIWYyfN95lGkpCeIKmoVSGYTNHxMvKSrP3NvMCQIsBh18xM6LkrjaX+TeFmMlm2rz8NAgdao5K52+FrC8g8haoc685dzzmWTO14fZuEH412PbBoWlm5o7ou07c1sCOZpB9eKoZ5DtSG+b9Yy4vfsFhzDNmJpK0CyDyZghoY16ceHylOWLd4lD5+scajq3u80Sl34qx60Jz9NgnyszeYs+B+u95Xi90MAT3MLO65KdBQDvIXgBHvzSzwfg3LTymdhA+0pzbbsuA4G5w7Dczw0roUNdMKuUV/W/I+srMUhMxyuw3ezbk/glZs6BpGvjWLdbWgWbGmayZ5kmCb2zF9ykiNZqCcZFqImV9isdgd1r/adUi2B3WehhDWg6plicLNVZOqucRcRc2OPCYefFg3SfMkWzHdAuAOg+YU1QOvWiOkIOZOi+kL4RdWlQvcpSZL/zgM2aaQ0sIhF1mBukuOcbLEP++makl82M4+gUE94YGn5o31LEUy3biWw+SfoMDT5gj/4dfMwPOgLYQ+2z59lXICB/NL6u20anZEiwHnjRPLPxblX0CYfGBhK8g/THI+hQy3jVPOmKeK8qU4jym/4F/Ezgy3TyB8Y2DOg9CnfLnz3fhEwyNvoeDT5sXZGa+Dz7h5mtUdxJYI0q01R/CroSM18xRchE54ygYF6kGyrqpzvDPhjNrxKxqEZA7pqFIFbHtKV+9+u+Zo9kAO4e6ZzoJG1Y4ZeUEwkeYjzL3NR2Y7nmZTzDEvWI+HI6vNn+WbJNvbGG9ElNFTsK+7E7YGkzEx8/Pc4X60z20NRTqvWA+ymLxhbqPmY+yNEvzXN5oqed9xzxtPsrD4m9+oxHq4Y6cIlLrac64iJeV56Y6E+ZNwGa3ne6myalmja9YvbyNcHQOBHc/ZU0qk/2Ye9mhqYAPBHc93a2pHezHzSwqYZcX3elURM4oGhkX8bLU7all3lTHwGBH5g5St6dqVLq2CU42R5QLdlHqvHFLmJnxJGcRHH7dHEUtLW3eqXboP3B8hTkfG1/z5jnZc8256X6JFdtWQTpQxgmmxd/1NvG1TcF+c/581ixzDn7UeG+3SES8RMG4yEmy2SA1Ffbsgfh4SE4G60lMn96TVb6pCuWtJzWIxQr1ppnZVLDgGpAXPvcJhP3jzdzfQReaUx/8S7nJz6kW1AWyF8KBJ8F+tHAe+0So83DFt5V2fuGNhErbVzfPU0Bqi9y/YM+1Zpabei9BYHtvt0hEvETBuMhJSEmB8eNhZ7EB7YQEmDYNhlVwand8WPmmKpS3ntQwYcOgwSz3POO+CVBvavnmgp8uIX3Mx8kqfmOj6HvMixo93awIwBp18vupCUK6Q6sysuiIyBlDwbhIBaWkwPDh7mmOd+0yy2fNqlhAntwwuVw31UlumFzJlku1FTbMvHjPEaha480pLKUFqjWRpxsb+SaY3wxUpxMOEZHTTBdwilSAzWaOiHu634ijbMIEs155VeSmOlKLWazmaGn41ebP2haIe7qxUcEuszwrxTvtEhGpBhSMi1RAaqrr1JSSDAN27DDrVYTjpjoNwhu4lCeEJ1SbtIYiJ6XMGxsVlu2bYNYTETkDaZqKSAXsKec1lOWtV5xuqiO10glvbGRAwQ6zXkj309UqEZFqQ8G4SAXEl/MayvLWK0k31ZFap7w3NipvPRGRWkbTVEQqIDnZzJpisXhebrFAYqJZT0So+I2NRETOMArGRSrAajXTF4J7QO54PnXqyeUblzOYYYPspZD5sfmzNs2ftqWfuI5vopk9RkTkDKRgXKSChg0z0xc2cL3WkoSEiqc1FCErBTYnwY4esPsa8+fmpNqRYcSwwf67T1wv9oXalT1GRKQCNGdc5CQMGwZDhlTNHTjlDOZI+Vcy04gj5V+DWTU7B/cJL94sZK176tsiIlJNKRgXOUlWK3Tv7u1WSI11wpR/FjPlX+iQmjtqrIs3RUROSNNURES8oSIp/2oqXbwpInJCCsZFRLzhTBg1Dk42b3lPKemHsOjiTRE54ykYFxHxhjNh1NhihXrTHE9KLjR/1Jtac6fhiIhUAQXjIlJpNhssXQoff2z+tNWizHynzJkyahw2zLwQ1bdE+iHfhJp/gaqISBXQBZwiXmaz1eysLCkpMH487Cw2/TkhwczHrjSPZXCMGu8ajhmQF7+Qs5aNGocNMy9EzUk1p91Y482TjNpwbCIilaSRcREvSkmBpCTo0QOuucb8mZRkltcEKSkwfLhrIA6wa5dZXlOOw2vOpFFjixVCukP41eZPBeIiIoCCcRGvqemBrM1mjogbHjLzOcomTNCUlRMKGwZN0yBxCdT/yPzZdGvtCsRFRKRUCsZFvKA2BLKpqe4nEsUZBuzYYdaTE9CosYjIGUvBuIgX1IZAdk85M+6Vt56IiMiZSMG4iBfUhkA2vpwZ98pbT0RE5EykYFzEC05FIDt9OlgskJZ2Mi2quORkM2uKpbTMfEBiolkPoKAA7rvPLPPxgaFDT0szT5mkJBg1ytutEBGRmk7BuIgXnCiQtVhcA9nqyGo10xdC6ccxdWpRmsZ33oHnnjMvTn3vPbjrrtPSzGplzhyYONHbrRARkepEwbiIF5QVyDqeFw9ky+P66+HYMWjUqEqaWC7DhsGsWdCgRGa+hATzBkDF84wvXmzWe/FFs63dup2+dp4Kf/8Nb79dsXXmzIFJk05Ne0REpGZSMC7iJWUFsrNmVfyGOVYrBAaWPW3kVBg2zJwas2QJfPSR+TMtDa66yrXe/v0QGVl1+zUM8+TDWwICwM/Pe/sXEZHaQcG4iBd5CmS3bj25O1d6mjM+d6451SUkBMLCYOBAWLfOdb1RoyA01MxvPnSo+XtMDNx/v49LasW0NHP7zz8Pb70FTZuaAen558PKldC9O1x9tfnzySeLTgoc6y1ZYu7bYjEfS5eay+1281uAtm3Nk4l69eDWW+HwYdd2JiXBoEEwfz6cdx4EBcGbb5avb/74wzzOJk3MfcTFwY03wsGDrvUmTjTbtmmTWT8yEiIiYPRoyMlxb0/xOeP5+eaod/Pm5j7q1IHu3a2sXh3j7OdXXzXrOvqg+IlTdjbcc485PSkgAFq2NPu6ZPpLiwXGjYPZs+Gss8y6bdvCvHnl6wsREalealQw/sMPPzB48GDq16+PxWJh9uzZLssNw+Cxxx4jPj6eoKAgevfuzcaNG73TWJFyslpdA9mKTE0pywcfmMF3aCg8+yw8+ij89RdcfLH7RZ42G/TrZwaQzz9vTiF58UUrCxYkuW33o4/Mud+33gqTJ5vbGjbMDEY9iYkx29KqlTnq/8EH5qN1a3P5rbfCv/8NF11kTt0ZPRpmzDDbU3Kbf/9t9lOfPmbd9u3L1xcLF8KWLea2X37ZHLX/5BMYMMBzrvcRIyArC6ZMMX+fPv3E00smTjTr9OgBr7wCDz9sBtZbtkQ4j7NPH7Ouow8++MB8bhhw6aXmFJ7+/eGFF8xg/N//hrvvdt/Xjz/C2LHmcfznP3D8OFx+ufvJhYiI1ABGDTJnzhzj4YcfNlJSUgzA+OKLL1yWP/PMM0ZERIQxe/ZsY82aNcall15qNG7c2Dh27Fi593HkyBEDMI4cOVLFra+YvLw8Y/bs2UZeXp5X21GTnWl9+O67hgGGsXWrYWRlGUZkpGHcfLNrnb17DSMiwrV85EhzvSeecK3bvr3daNr0sLP/tm4169WpYxiHDhXV+/JLs/zrr4vKHn/cLCuuWzfDaNvWtSw11aw3Y4Zr+bx57uWNGpll8+aV0QmlyMlxL/v4Y3N7P/zg3u4bb3Ste9ll5nEX16iR2XcO7doZxsCBrnVKvgdvv929XwzDMGbPNssnT3YtHz7cMCwWw9i0qagMDMPf37VszRqz/OWX3bdd051pn+NTQX1YeerDyqvqPqwu8VpV8PXyuUCFXHLJJVxyySUelxmGwdSpU3nkkUcYMmQIAO+//z716tVj9uzZXFVyAmuh3NxccnNznc8zMzMByM/PJ7+0ob7TwLFvb7ahpjvT+tBmswC+5OfnM3euhYwMX664ooA9e1yHfjt1srJkiYX8/AIA7HYr4MNNN+W7jERfeCF88EFwsX4E8OOKK2yEhtqddTt3Nss3brSRn28vbIsPYHXpe8OwYhhF+wX49FMfIiJ86N69wCWn+jnnQGioL999Z3DFFY65Mr40bgw9exaUOgpfGl/folH248fh6FHo2NFs9++/2+jc2bXdY8YUkJ9f1G9duvjwxRdWDh7MJzzcuVXsdoP8fLN9ERFW1q2z8NdfBTRvTmGfub4H7Xb3fgH45hsfrFYf/vUv12MbP97CrFm+fPONjbFj7YWlfvTqZadhQ5uzbuvWEB7uy6ZNdudrUFucaZ/jU0F9WHnqw8qr6j6sTa9FjQrGy7J161b27t1L7969nWURERFccMEFLFu2rNRgfMqUKUzy8P3zggULCA4OPmXtLa+FCxd6uwk13pnSh2vWJAIdWLJkCT/91ABoS9++nj/iwcH5zJkzB4CdO8/F378Bv/8+x6XOoUMtOXq0FQsXzgVg374goC85ORuYM2dTiS0O4bffNjJnzt8AbNzYEmjl3AfAwYMXcfSoP3PmLHGW/fxzZ44cqUeDBp6vhFy7di9z5vwGQE5OH+Lispkz5+fydUgxWVl+fPppS1JTG3DkSKDLsuXL/2HOnH9c2v3PP4vYv7/oJH37drNvU1KWEBt7zNmenTsPMGfOKgD69avD0093om1bfxo2zKRDh310776TpKSi9+C2bWcDTVz6BWDFis5ERYWRmur6Xs3O9gUGsnTpFpKS/iosHYJhbGPOnD9c6gYE9OHPP4vaU9ucKZ/jU0l9WHnqw8qrqj7MKXkhTw1Wa4LxvXv3AlCvXj2X8nr16jmXefLggw9yd7FJmZmZmSQmJtK3b1/Ci4bATrv8/HwWLlxInz598FPKhpNSW/vw66/h/vvNCy4dGjSAfv3MqwF79OhBerp5Oci77xYQF+e+DV9fC926DQDg88+t+PlZGDBggEud38wY2Nl/jnnmbdq0YsCAFm7bbNasOQMGNAVg+XJz/8W3+cIL5sh48bLXXrMSG2vw3ns2PKlbty7t2pn1g4N9SUwMdGtnefTvb2XZMgt3322nXbsCQkPNC0cHDfKladMWDBjQzKXdffv2om7dovUPHDD7tnv3HiQl4WxPQkICAwbEFx4r3HQTfP11AQsXhrJgQRhff92M225bzX/+0xI/Pz/mz3fvF0c/HDjg/hocOWL+bNKkCQMGJDnLGzduyIABCS51g4N9adCgqD21RW39HJ9O6sPKUx9WXlX3oWMmQ21Qa4LxkxUQEEBAQIBbuZ+fX7X4wFWXdtRktakPU1LMm+aUvOhw8+aiTB1+fn60KIyV69f3pW/fsrfp41O0nmu5zVluPsxyq9WKn5/7VabFyx0XoRbfpiN7SPGyZs3gu++gWzdfgoLKbqe5DQt+fhW77vzwYTPH+aRJ8NhjRe12XNtdWruLd0dp5T4+ru2pVw/GjDEfR49CcrLBJ5+04sUXffHz8/PYL2BmZvnuOzh+3I+wsKLyzZvNn40bu/a5j4/n16Bke2qT2vQ59hb1YeWpDyuvqvqwNr0Oteavdlzh8N++fftcyvft2+dcJlKT2Wwwfrzn7B/FyxyZUcLD4emnPWc5SU8/de2siBEjzPY++aT7soICyMio/D4cAXDJfps6tfLbLq5kJpPQUGja1CA/v+jPbEiI+bPkcQ0YYPbDK6+4lr/4onkCU8qlMiIiUgvUmpHxxo0bExcXx3fffUf7wnxnmZmZ/Prrr/zrX//ybuNEqkBqKuzceeJ6v/9uprx7/XXzTpcdOpjPY2Jg+3b49lszjWDJwM8bunUzU/5NmQKrV0PfvuaNdDZuhJkzzfSFw4dXbh/h4dC1q5kCMD/fnNKzYIGZz70qtWljpqbs2BGio2H5ckhJsTBgwC4gEXBcNAp33mmeMFmt5mszeLCZEvHhh81Uke3amW388kuYMMHM6S4iIrVTjQrGjx49yqZNRReObd26ldWrVxMdHU3Dhg2ZMGECkydPpnnz5jRu3JhHH32U+vXrM3ToUO81WqSKFM82Upb9+82f11wD9evDM8+YecFzc81ANDnZzLddXbzxhhmkvvkmPPSQmfkkKQmuu848aagKH30Ed9xhTuUxDDPonzvX7J+qcued8NVXZhCdmwuNGsGkSXbatFmLIxgfNsxsxyefwIcfmm256ipzqtBXX8Fjj8Gnn8K775p98Nxz5o2ARESkFvN2bsWKWLJkiQG4PUYWJvu12+3Go48+atSrV88ICAgwevXqZfz9998V2kd1yVupnKaVV9v6cMkSM5f0iR6ffVY1+6tt/ecN6sPKUx9Wnvqw8tSHlac846WrUSPj3bt3x/A0YbaQxWLhiSee4IknnjiNrRI5eTabOf1kzx6IjzdHrUu7A2dysnkHy127PM8bd+jf/9S0VURERKpejQrGRWqTlBTzgszi88ATEsx50sOGude3WovmUFssngPyli1xycZR2x05AseOlV1H12+LiEh1VmuyqYjUJI4UhSUvyNy1yyxPSfG83rBhMGuWOfe7OIsF2rY1c5CfScaPN79RKOshIiJSnWlkXOQ0O1GKQovFzKAxZIjnKSvDhpnLyju9pTa77z7zQk8REZGaSsG4yGl2ohSFhgE7dpj1unf3XMdqLX3ZmaRNG/MhIiJSU2maishpVt4UheWtJyIiIjWXgnGR06y885g131lERKT2UzAucpo5UhRaLJ6XWyyQmGjWExERkdpNwbjIaeZIUQjuAbnj+dSpZ+YFmSIiImcaBeMiXlBaisKEBLPcU55xERERqX2UTUXES5SiUERERBSMi3iRUhSKiIic2TRNRURERETESxSMi4iIiIh4iYJxEREREREvUTAuIiIiIuIlCsZFRERERLxEwbiIiIiIiJcoGBcRERER8RIF4yIiIiIiXqJgXERERETES3QHTpFqymaD1FTYswfi4yE52bxjp4iIiNQeCsZFqqGUFBg/HnbuLCpLSIBp02DYMO+1S0RERKqWpqmIVDMpKTB8uGsgDrBrl1mekuKddomIiEjVUzAuUo3YbOaIuGG4L3OUTZhg1hMREZGaT8G4SDWSmuo+Il6cYcCOHWY9ERERqfkUjItUI3v2VG09ERERqd4UjItUI/HxVVtPREREqjcF4yLVSHKymTXFYvG83GKBxESznoiIiNR8CsZFqhGr1UxfCO4BueP51KnKNy4iIlJbKBgXqWaGDYNZs6BBA9fyhASzXHnGRUREag/d9EekGho2DIYM0R04RUREajsF4yLVlNUK3bt7uxUiIiJyKmmaioiIiIiIlygYFxERERHxEgXjIiIiIiJeomBcRERERMRLFIyLiIiIiHiJgnERERERES9RMC4iIiIi4iUKxkVEREREvETBuIiIiIiIlygYFxERERHxEgXjIiIiIiJeomBcRKS6OJ4L3y+HvQe83RIRETlNFIyLiIiIiHiJr7cbICIihQL8IbkDWCzebomIiJwmCsZFRLzNMMyHj48C8dOpeL+LiHiJgnEREYe0XbBtD5x/FmzbDQePgI8F4mMgqT7k5sOm7ZCRaQZwiXHmA8BuN9c9dASO5YJhYA0Joq6vv+s+jufCr39CkwQz8N613yzr2AZ8reaylkkQV9esn5cPW3bC4UzILwA/XwgLgWaJEBhg1snKhq27ICsH7Dbw94PIMGjZuGi/O/bCgcOQc9xsa3AQNIyDmOiK9dGGrZB+GM5vCxu3Q0aW2e6G8dAgFo7mwOYdkJlttrVxA6hXp2j9/ALYvsc8nmO5YAHCQ83+CA0269hs8PMaiK8LjeJd95+bB7/8YW63YeGyggJI220eX16B+Q1DfF3ztXGc3JTV7479ioh4gYJxEZGS1m82g9UmDcyAfPse8LPC7gMQFWYGdPsOmUFyWIgZ+Nps5oWXsdFmIGizY9mTzoUhdbFlH4NIP9d97D0AdsOs6+NjBrSerNsE2cfNQDfQ3wxmD2fC8TwzGM/Lhz/+MQPfhnHmdo7nmYFpcbv2QZ1IiK0Dhh32H4a/tsBZPmZ5hRjw50aIKOyL/QfNkxSrj3lSEBsNdaNg934zeA8PhaDCE4fjuXAgA2KizPbn58PudFj9txngB/iD1Qp1I2H/IfOYitt/yPwZW3gSYbOZ6+bmQ/26EBAAmUfNduTlQ7OGJ9fvIiKniYJxEaneDAOOZJmBlb+fGQCe6qkcYSHQIsn8PT4Gfv0DNu90HY2NjYZlf5jBXWQY+PrCBWe7THkoqBuJ7Zc1+O85AJHhrvvIzYdOZ5nH5HA817VOQYE5wtwkoWgEHoraAGbgWWCDc1qY7XZo3MB1W+efbQbLDvVjYeV62Lmv4sG43TBHux3tqFfYF3+nQesmRYFyVDj8vhb2HYCkwvaEBJnHXfw1rFcHfltr9mWj+kVl+w9hychy3fe+gxARWvStwM595gh7xzYQHFh4bDFmv+7YCwlx5kmMg6d+FxHxIgXjIlJ9pR82R1zz8ovK/P3M0c6YqFO337iYot8tFggNgdwMczTVwdcXggOKAmiLpSjANAwzQDYMMmz51MvOcd9HTOSJA0LHHPKMLHPaip+HP9mOkd2DGWagW9r85+KBeH4BYJhBrWOkuaLiPPTFsVzX1yU4sGikvvgxOTj6yepj1s0q1k9R4eDvh8+BjKKy7GPmo0WjorL0w+Zx+FnNUfbi6+/Ya57IBRabJlOefhcROY0UjItI9ZR+GP7a7F6el2+Wt2la+YC85Ki7UVgeWGKet6/VnDvuVyKIs1rNYNJh7wFzpDbnOBgGfkCcXyBGgd19346R3bL4+Jij4pt3wLI1EB4C0RFmIOwIKCPCzCkh2/bAzv3mKH3dSHN0unjgezDDrHM0xzzuyvCxuAe0Vqs5xaTktxZWa2HwX8gwzCkzu9PN4L244icbFgvERmPZnY6Vwm3uO2juu/jrfizXDNB/XuO5rcUDdChfv4uInEYKxkWk+jEMc0S8LJu3m0HnyU5Z8TTq7ghePW6ylP04Att9B81pGnUizSklfr4U2GwcXvMXdQM8jMSWN4NHQj2oE2HOsz6caV6ouGMvnNMSwoLN42/b1JyucjADDmWa7dixFzq0NoPhjCxYu8kcQW7eyAykfSzmycNJjYxXYprQ9j3mMcTVNaeu+FrNY9i03f0kIa4ulp37iPMLNJftPwTRkeZIvINhmKPgiSXmljsElQi+lTlFRKoZBeMiUv04RqvLkptv1is5F7s8Sht1txeOYB844jolpbzbDAwwA+PCEwQjPx+fqpjfHhRYlLkl5zis+At27jXnZzuEh5qPxpgnBhu2msFrfIx5MaePjzmvvHgw6o07faYfLsz0kuRaXmBzn4YTEoQREkRCfjCWzGwzk0rJCzKDAsyLOKNO4n0gIlINaIhARKqfEwXiFa1XXHlG3dN2Vnwqh4eY25KVTbTV331BedlsRScIDkEB5hxre2H78gvc2+pI1eeoU3wuu4Mjq8npZrEUTQdySD9U6mtpj4ki1jcAnz0HzBHx6BJBd0y0eZHroSPuKxd46BsRkWpGI+MiUv2U9wK7k7kQrzyj7nkFFR91rxNpBrfrNpvzuo/nYt2dTpa9gDBOMiA/lgtr/jYDzpBAM5A9kGEG4I6MJfsOmikE6xamCrTZYM8Bc3pKdIRZJzrCnMv+50ZzvbwCc52gAHO+9elUJ8Kcu75hqzltJvuYeQylzOW2143EunUXPoeOmFlSSk4zSaxnTs9Zu8nMwBIWDDa7ud30w9D5bPe5/iIi1YiCcRGpfiLCzEC7rKA5oDDNYUWdqlH3enXMdXanm6O0IUHYmjck44+1hHGSN5UJ8DeD54wsM2C1WMysI22aFF3EGBFm3vRnf+Hosq/VTHHYunHRfOmocDNV4449sGmHWd4kwRwdP93BeMN4M1jef8gMlkOD4ezmZs52T/z92F+Qa84bj63jvtxqhfYtzQD/wGGzn3yt5jEm1TeXi4hUYwrGRaT6sVjMucGe5nU7NG14chdvnsyoe6vG5qOk9q2KfrdYzECzWA5wIz+fVTkZxHfvgnNrgQHQ7TzP+yy5zM/XvOCyLGHBrnPHSxNf1/M8+KQG7mVlKU9fFNf5HNfnPj7QNNF8lGd9wDAMjEB/LBGhnitYrebJRZOE0ttdVr+LiHiR5oyLSPUUE2WmLywZPAf4VS6toWPUvSwnO+ouVS8vn3p+gdhPZV55EREv0si4iFRfMVFm+sKqvAPnqRx1r8kKCoou+CzN6bxZzrFcyDyKdfd+7BgY9eqgCSciUhspGBeR6s1iObn0hWVxjLqXzDMe4GcG4mfiKOymHeZ867KczmkeR7Lg7zQs/n6szDnMubprpojUUgrGReTMdCpG3WuyxDjzItTqIq4uxNWlID+fPXPSONfb7REROUUUjIvImetUjLrXVCFB5kNERE4rXcApIiIiIuIlCsZFRERERLxEwbiIiIiIiJcoGBcRERER8RIF4yIiIiIiXqJgXERERETES2pVMD5x4kQsFovLo1WrVt5uloiIiIiIR7Uuz3jbtm1ZtGiR87mvb607RBERERGpJWpdpOrr60tcXJy3myEiIiIickK1LhjfuHEj9evXJzAwkAsvvJApU6bQsGHDUuvn5uaSm5vrfJ6ZmQlAfn4++fn5p7y9pXHs25ttqOnUh5Wj/qs89WHlqQ8rT31YeerDyqvqPqxNr4XFMAzD242oKnPnzuXo0aO0bNmSPXv2MGnSJHbt2sXatWsJCwvzuM7EiROZNGmSW/lHH31EcHDwqW6yiIiIiFRQTk4O11xzDUeOHCE8PNzbzamUWhWMl5SRkUGjRo144YUXuOmmmzzW8TQynpiYyIEDB7z64ubn57Nw4UL69OmDn5+f19pRk6kPK0f9V3nqw8pTH1ae+rDy1IeVV9V9mJmZSd26dWtFMF7rpqkUFxkZSYsWLdi0aVOpdQICAggICHAr9/PzqxYfuOrSjppMfVg56r/KUx9Wnvqw8tSHlac+rLyq6sPa9DrUqtSGJR09epTNmzcTHx/v7aaIiIiIiLipVcH4vffey/fff09aWho///wzl112GVarlauvvtrbTRMRERERcVOrpqns3LmTq6++moMHDxITE8PFF1/ML7/8QkxMjLebJiIiIiLiplYF45988om3myAiIiIiUm61apqKiIiIiEhNomBcRERERMRLFIyLiIiIiHiJgnERERERES9RMC4iIiIi4iW1KpuKiIiIiLfZbXa2p24na08WYfFhNExuiI9V45/imYJxERERkSqyPmU988bPI3NnprMsPCGc/tP603pYay+2TKornaaJiIhIrWK32UlbmsafH/9J2tI07Db7adnv+pT1fDb8M5dAHCBzVyafDf+M9SnrT0s7pGbRyLiIiIjUGt4ambbb7MwbPw8MDwsNwALzJsyj5ZCWmrIiLvRuEBERkVrBmyPT21O3u+3XhQGZOzLZnrr9lLVBaiYF4yIiIlLjnXBkGnNk+lRNWcnak1Wl9eTMoWBcREREajxvj0yHxYdVaT05cygYFxERkRrP2yPTDZMbEp4QDpZSKlggPDGchskNT8n+peZSMC4iIiI1nrdHpn2sPvSf1t98UjIgL3zef2p/XbwpbvSOEBERkRqvOoxMtx7WmhGzRhDeINylPDwhnBGzRijPuHik1IYiIiJS4zlGpj8b/pkZkBe/kPM0jky3HtaalkNa6g6cUm4KxkVERKRWcIxMe8wzPvX03QHTx+pDUvek07IvqfkUjIuIiEitoZFpqWkUjIuIiEitopFpqUl0migiIiIi4iUKxkVEREREvETBuIiIiEgttHr6aiZZJpGRllHl2549ajZPhz5d5dt1WDpxKZMsk07Z9qsTBeMiIiIiIl5S4WB8z549fPjhh8yZM4e8vDyXZdnZ2TzxxBNV1jgREREROTnnXH8ODx97mIhGEd5uipShQsH477//Tps2bbj99tsZPnw4bdu2Zd26dc7lR48eZdKkM+MrBREREZHqzMfqg2+gLxZLabclrTy7zU7a0jT+/PhP0pamYbfZT9m+TpZhGOQfy/d2M0pVodSGDz30EJdddhn/+9//yM7O5v7776dbt24sXLiQc88991S1UUREREQqaPX01Xw5+kvGbx1PZFIkG77cwMq3VrJn1R6OHTxGeEI47Ua1I/mhZLc87Dt/3cn3k75n57Kd2PJsRDWN4tybzqXz+M7OOobNYFrSNJcbLFl8LNRtXZcxv4zBP9S/XO3c/uN25t81n31/7iO8QThd7uvisZ69wE7qlFTWTF9D5s5MJjCBHyf9SN+n++IbUBTSTk2aSuxZsXS6oxOLH17M/rX76f1MbzpP6MzmhZv5ftL37F+7H3uBnfAG4bS+vDW9nu7lXL8gt4DUp1P5c8afZO7IJCQ2hLOuPoseT/Zw7md6t+kczzjObWtuc2vnKy1fITIpkuvmX1eu469QML5ixQpeffVVfHx8CAsL47XXXqNhw4b06tWL+fPn07Bhw4psTkREREROkzXT1+Af6s+Fd1+If6g/WxdvZeljS8nNzKXvc32d9TYv3MzHgz4mND6UC8ZfQGhcKOnr09n4zUZnMH5k2xEKjhe4BOIAht0gfV06mxdsLtcdT/f9uY8P+n5ASEwI3Sd2x15gZ+njSwmtF+pW96sxX7HmvTW0Gd6Gc8eeywv3vsDvL/xO1pYsrvziSpe6B/8+yOdXf07HWzvS4eYO1G1Zl/3r9vPxoI+pd049ejzRA2uAlUObDrHjpx0u7f/k0k/Y/uN2OtzSgZjWMez7cx+/vPgLB/85yFWzrwLMKUBf3/w1+9fuJ/asWOf6u37fxcF/DpL8SHI5XhFThW/6c/z4cZfnDzzwAL6+vvTt25d33nmnopsTERERkdNg2EfD8Avycz4/77bz+Oa2b1j+2nJ6Tu6Jb4Avdpudb279htD4UG5bfRuBkYHO+oZhAObUlF2/7Sp9RxaYN2EeLYe0POGdT5c+thQMGJ06moiG5tz21pe35vWzX3ept3fNXta8t4Zzx5zLpW9fSmZmJrPvnc1Nd9zEipdXsHXJVhr3aOysf2jTIa6ddy3N+jVzlv0y9RdseTaunXstwXWDPbbnz4/+ZMuiLYz6fhQNLy4aZI49K5Zvb/uWHT/vILFLIm2uaMPcO+byx4d/0PuZ3s56f3z4B34hfuU6EXGo0Jzxs846i59//tmt/N577+XBBx/k6quvrsjmREREROQ0KR6I52blknMgh4bJDcnPyefAhgMA7F21l4ytGXSe0NklEAecc8+3p24nP6eMOdgGZO7IZHvq9jLbY7fZ2TR/E62GtnIG4gAxrWNcgmiAjXM2AnDh3Re6lHe8o6O5/NuNLuWRjSPdtuE4ng1fbsCwGx7b9NfMv6jbui51W9Ul50CO89G4pxnob12y1dxWRCAth7Rk7cdrXU5S1n26jlZDW+EfUr4pOlDBkfEbbriBpUuXcttt7vNj7rvvPgzD4I033qjIJkVERETOKHabne2p28nak0VYfBgNkxuecAS5Kuxft58ljyxh6+Kt5GbmuizLPWI+P7T5EIDL1IuSsvZklWt/J6qXk55DwbECoptHuy2r07KOMwAHc1qMxcdCdDPXuiH1QgiMDOTItiMu5VGNo9y22fbKtqz830q+HvM13z3wHY17Nab1sNa0Gd4Gi495onFw40EOrD/AczHPeWxz9v5s5+/tbmjHuk/XsT11O426NmLLoi1k78vmnOvPKfO4S6pQMD5mzBjGjBlT6vL777+f+++/v0INEBERETlTrE9Zz7zx81zmWocnhNN/Wv8KTW3wpGSQX3z093jGcaZ3m05AeADdn+hOdNNofAN92bNyD4vuX1TqSLEnYfFhVVqvIsqbGcY3yD3E9QvyY/QPo9m6ZCsbv93IpnmbWPfpOhr3bMx1C67Dx+qDYTeIPTuWfi/087jd8MRw5+9N+zUlpF4If3z4B426NuLPD/8kNC6UJr2bVOiYKhSMHz9+nAULFtCjRw/Cwlw7ODMzk6VLl9KvXz8CAgIq1AgRERGR2m59yno+G/4ZlIh7M3dl8tnwzxgxa8RJB+SegvzAqKJpJmlL0zh28BhXplxJo66NnOWHtx522U50U3Pkef/a/aUGlQ2TG+IX7Ff6VBWLeYLRMLnsxB7BMcH4BvlyaOMht2UH/z7o8jyiUQSG3eDgxoPEtI5xlmfvz+Z4xvFy51K3+Fho0qsJTXo1od8L/Uh9OpXFDy8mbUkaTXo3IbppNHvX7KVxr8YnDPx9rD6cfc3ZrJ6+mt7P9mbD7A10uLlDhb/lqFDtN998k2nTprkF4gDh4eG89NJLvP322xVqgIiIiEhtZ7fZmTd+nlsgDjjL5k2Yd1J5uh1BfsnMJscPm0k3Ns3bhMVqBpaO+c0Atjwby19b7rJOfId4IhtH8svUXzie4Zq0w7Guj9WHBp0amIWlxKv9p/Y/YVDqY/WhWb9mbJi9gSPbi6aZpK9PZ9P8TS51mw9oDpgXYRa38pWV5vKBzcvcF8CxQ8fcyuLaxwFmOkOANiPakLUri5Vvr3Srm38sn7xs1xtennP9ORw/fJxvbv2GvKN5nHNdxaaoQAVHxmfMmMGjjz5a6vIJEybwxBNPMG7cuAo3RERERKS22p663S1YdlHsosek7knl3m6ZQX6h75/4nltX30pgVCCzR87mgjsvAAv88cEfLsE5mCPHA18fyMeDP+aN9m/QfnR7wuLDOLDhAOnr0p25syMaReAb6Etw3WC3PON9/9u33CP83Sd1Z9O8Tbyb/C7njT0Pe4Gd317+jdi2sez7Y5+zXly7ONqNbMfKt1aSm5FLvU71GMpQlk9bTquhrVwyqZTVD9t+2Ebzgc2JbBRJ9v5sfn/td3MUvzBzSrvr2/HXZ3/xzW3fkLYkjcSLErHb7BzYcIC/PvuL6+ZfR/3z6ju3GX9uPLFnxTov/IzvEF+u4y6uQsH4xo0badeuXanLzznnHDZu3FjqchEREZEzUVVd9FjSCYN84Oieoxz46wDXfHMNC+5ZwOJHFhMUFcTZ151Nk15N+LDfhy71m/VrxsglI/l+0vcs++8yDLtBdNNoOtzcwaWexWphfNp45zx1v2A/vnvoO3569idaDGrhdrGlJ/XOqcd1869j/t3zWfrYUsITwuk+qTtH9xx1CcYBLv3fpUQ1iWL19NWs/2I9jWnM+XefT9+n+3reeAktL21JRloGq99ZTc6BHILrBtOoWyO6T+pOYIQ5pcfiY+HK2Vfyy4u/sOb9Naz/Yj1+wX5ENYnigvEXUKdFHbftnnPDOSy6b1GFL9x0qFAwXlBQQHp6eqk390lPT6egoOCkGiIiIiJSW52qix4rEuSfffXZ3LTsJrdljxuPu5U1vKgh1y+4vtTtDZ0+lKHThwK4jOS3GtKqXO0prlHXRtyy/Ba38u4Tu7s89/H1odtj3ej2WDcyMzOJiIhg4uMTXe6+CTAhbYLH/TTu2diZorAsVj8rF913ERfdd1G52m/1t4IFzrn25ILxCs0Zb9u2LYsWLSp1+YIFC2jbtu1JNURERESktmqY3JDwhPBS51hjMTN1nOiix5K8mdlEzHn0q/5vFUndklxypVdEhYLxG2+8kSeffJJvvvnGbdnXX3/NU089xY033nhSDRERERGprXysPvSf1t98UjIgL3xenoseSzphkM/JBfmVlXc0j6N7j7o88g/nuzw/mYtVq4u87Dz+/PhPvrn1G/b/uZ/Od3U+6W1VaJrKLbfcwg8//MCll15Kq1ataNmyJQAbNmzgn3/+YcSIEdxyi/vXDCIiIiJnutbDWjNi1gjPecannlyecUeQ/9nwz8yA3MOFnCcT5FfWz8//zPeTvncrX8c65+/jt44nMinyNLaq6uSk55ByTQqBkYFc/NDFtLy05Ulvq0LBOMCHH37IkCFDmDFjBv/88w+GYdCyZUsmTZrEiBEjTrohIiIiIrVd62GtaTmkZZXegbPUID/x5IP8ymp3QztnhhIwrzv87bff6NSpE76+ZvgZGhd62ttVVSKTIj3OtT8ZFQrGbTYbzz//PF999RV5eXkMGjSIiRMnEhQUVCWNEREREantfKw+FUpfWB6nIsivjKgmUUQ1KbolfX5+Putz19O4V2P8/Py80qbqqkLB+NNPP83EiRPp3bs3QUFBvPTSS6Snp/POO++cqvaJiIiISDmciiBfTr0KnS69//77vPbaa8yfP5/Zs2fz9ddfM2PGDOz2mjsBX0RERETEWyoUjG/fvp0BAwY4n/fu3RuLxcLu3burvGEiIiIiIrVdhYLxgoICAgMDXcr8/PzIz8+v0kaJiIiIiJwJKjRn3DAMRo0aRUBAgLPs+PHj3HbbbYSEhDjLUlJSqq6FIiIiIiK1VIWC8ZEjR7qVXXfddVXWGBERERGRM0mFgvF33333VLVDREREROSM453kkyIiIiIiomBcRERERMRbFIyLiIiIiHiJgnERERERES9RMC4iIiIi4iUKxkVEREREvETBuIiIiIiIlygYFxERERHxEgXjIiIiIiJeomBcRERERMRLFIyLiIiIiHiJgnERERERES9RMC4iIiIi4iUKxkVEREREvETBuIiIiIiIlygYFxERERHxEgXjIiIiIiJeomBcRERERMRLFIyLiIiIiHiJgnERERERES9RMC4iIiIi4iUKxkVEREREvKRWBuOvvvoqSUlJBAYGcsEFF/Dbb795u0kiIiIiIm5qXTD+6aefcvfdd/P444+zcuVK2rVrR79+/di/f7+3myYilbFvKXxkge2zvN2SCrMu7Q3fnnXqd/THRLOPjh849fsSEZEqUeuC8RdeeIGbb76Z0aNH06ZNG9544w2Cg4N55513vN00EREREREXvt5uQFXKy8tjxYoVPPjgg84yHx8fevfuzbJlyzyuk5ubS25urvN5ZmYmAPn5+eTn55/aBpfBsW9vtqGmUx9WTnXrP0tBAb5Aga0Ao5q06UQcfWfYDQzDoOAUt9vHbsMK5BfkQw3poxOpbu/Dmkh9WHnqw8qr6j6sTa9FrQrGDxw4gM1mo169ei7l9erVY8OGDR7XmTJlCpMmTXIrX7BgAcHBwaeknRWxcOFCbzehxlMfVo63+89i2AA70fYNXAysXLmKPX8EebVNFXX48CH8jaMsmTPnlGzfahzHZgmkZd5GWgGLFi0izxJ+SvZl7i8XmyXglG3fE2+/D2sD9WHlqQ8rr6r6MCcnp0q2Ux3UqmD8ZDz44IPcfffdzueZmZkkJibSt29fwsNP3T+zE8nPz2fhwoX06dMHPz8/r7WjJlMfVk7J/vNZ9wTWvyaT338t1r+ewrL7W/Dxx970ZuxtJ8KxnVhXjcey/3uwBmNveTf2lneZG7Pn4fPX0/jsmQtHN4NRgBF1Lva2j2PEdi/aaXYafnNaYDvnGbD44rPpNchJo6DPL1jyIuF76NDhXIyEAWZ9Wy7WZVdiSf8RW/LXGHUvPOFxWZf2xif9B4/LCs7/H0bSDUXHekWey3JL2vv4/j6G/AH/QEhSUfmeefhseA5LxirAghHWAnuLO8mLH87ChQuJiorGJ99gQL8BRevsXYj15+EY9Qdj6zQdfHwhcwPWtY9j2b8UbDkYEW2xt3kYo/5gtzYUdF+EZcdMfHamgD2fgqH78Vm3HP6C3sntsa6bhGXvAvDxw97wGuznPA3WQNfj2TYD6z8vQeZ6sAZhxPU2+z440aW/LLkHKOj0DtbV92I5vAJ7kzHY2/8Xcg9iXX0Plt1fg8XHPJYW4/FbeL6zLytLn+PKUx9Wnvqw8qq6Dx0zGWqDWhWM161bF6vVyr59+1zK9+3bR1xcnMd1AgICCAhwH+Hx8/OrFh+46tKOmkx9WDnO/vOxms9/vQ7CW8O5z8Cub7Gun4I1KAY2vQn1esK5z0LaDKx/3I81tjPEdoXjRyDtXWh0NYTdAvlZWLb8Hz6pA6HfbxDV3tyZr/k6Wbe9D7bj0PwW8AnAL7ge2LPNKlZf8PODgmPw8zA4tBx6LcK3zvnlO6CzHoHjrn8jSPsQ9szHNzje3LbjWEu+b6yF5b5+Zj2ALdPhlxshoi20fRD8IrEcXoXPvkUYDa8GwOJjwWKxFG1v1zfw03BodCWWC97Bx8cKGetgcTIEN4C2D4BvCJbtn+Hz03BI/hwSL3Npg++qOyEgBs56DGzZJV6ja82ThfZT4MAvWDe9grXgCHR5v+hY1j4FfzwKDUdA85vheDqWf17GZ2kvuGQV+Eea9SwWyDuEX+pgaHQVNLkea2A9rL5WWDIMDv4Gzf8F4a2w7PwSn9/HFL5O1qI+qgL6HFee+rDy1IeVV1V9WJteh1oVjPv7+9OxY0e+++47hg4dCoDdbue7775j3Lhx3m2cSG1RpxN0etP8vekt8FUSrLzHDPza3G+WN7oavqgPm98xg3H/KLg0Daz+RdtpdjN80wr+fhk6/5/rPnJ2wuBNEBhTVHZ0S9Hv+Ufh+0FwZB30WlwUzJdHfB/X5+k/w77F0ORGaDDA8zqlyTsCy+80+6T3UteRZ8OAggL3dXakwE9XQeNR0OkNsBReR79iPIQ0hH6/g7VwgKD5WFh4May+vygYd/CPhp7fOQNwFyGNoduX5u8tbge/cNj4GrS+F6LOgext8Ofj0G4ytH2oaL3EYTD3XLNu8fLje+H8N6D5ra7HcWAZdJgKrcYXtvdfsLhE/4qISJlqXTaVu+++m7fffpv33nuP9evX869//Yvs7GxGjx7t7aaJ1A5NxxT97mOF6PMAA5rcVFTuHwnhLYsCaB9rUSBu2CH3ENgLzHUPr3TfR+LlroF4cflHYElfyNwAvZZWLBAv6dhe+HE4RLaH81+r+Pp7F0JBFrR5wG0KCBaLe/20j+HHK6HZreYJjSMQzz1knhA0HAH5WWZqwuMHIPcgxPeDrI2Qs8t1W01v9hyIgxmAuzy/w/y5u3DO+o4U83VoOKJoX8cPQGAchDWHfUtc1/cJgCYl/obungc+fuZJlfOYfdz3LSIiZapVI+MAV155Jenp6Tz22GPs3buX9u3bM2/ePLeLOkXkBOw28+f2WRAabwZvAMENXev5RZiBaGBd9/Lcg0XPt7wHG/5rBtH2YlfBhzR237enMocVE8wpLJesgsi25T4cN/YC+HEEGDbomlI0Gl0RRzebPyPLkUP86FZYdh0kXgHnvey6LGsTYJjTRv541PP6x/ebU1gcQsvoo7DmJZ43NQPl7LTC/W009/d185JrmnxKfP0b3MD1Ww0wR9cD48G3xIXuoc1Kb5eIiLipdcE4wLhx4zQtRaQydqTAivvB8jz8ehNwDHzDzGUWD6OxnsoAMMwfWz+EX0ZBwlBo/W8IiDVHdddNKQpoi/MtI1tKwhDY9gn89Qxc+H7R6HJFrfq3Oc2i5yIITnBd5mlUG8zA/WQFxZuP3XPg4HKoc16xhYUnOq3vNUfCPQkrEeRaK5JRpsTxGHazrPtcz6PrvqGV2JeIiFRErQzGRaQSdqRA6nAgEEKKlRdkmT93fwNNRlVwm7MgtAkkp7gGun88XvH2JQyFuL5mcO8bBp1er/g20j6Bv6ea853rdXNf7h9l/szLKLqQEczR4OJCm5o/M9a6B8slWQOh2zfwXU9Y2h96fV80sh/axPxp8YO43hU7Fk+yNrqOnGdtMgNwRwaY0KaAYdYJb3Fy+whpBPuXQEGO6+j40U0n22oRkTNSrZszLiKVYLeZFxI6RrQ9WfNw0RSW8nKOnBfb7oFfzZHpk9HkBuj4Emx6A1bdX7F1M9bCb2Mg6bqiCw9LcgTZ+4ulQCzINqfaFBff1zwh+GuKOXWmOMNDH/pHQI/55jcDS/pAVuG3AoGxENvdzEhzbI/7esfTy3VoTv+8WuJ54bSY+peYPxOHma/Jn5Pc22kYrtOLShPfz5xutOntYuva3fctIiJl0si4iBRJTzUzmZTl2G6zXr3u5d9u/UHmiPsPl0GDgeb86Y1vQEQbKDh6cm1tOQ4KMs2TA/8I1+wfZfml8ELE2K7m9JniYrqYo9Txfc258b/eBJn/NgPXLe+YF5XmbC+q7xcOHV+EX8fAvPMh6RpzVP3wGrDlwHn/c99/YF3oudDMkrK4N/T50ZyTff6rZtmcs82LM0ObmCkYDywzX5MBa8rfN9lb4ftLIb6/uX7ah9DoGohqZy4PawrnTIY1D5rzyBOGgl+Y+brs/AKa3WJOmSlLwlAzi8yqe8zR8PBWsPMryDtUWKGUqT4iIuJCI+MiUsTTqGxl6jk0GQXtnoaMNWYqwD3zocuHhZlYKqHtQ9D6PjMgL++IbG66Ocr92y2w7HrXh2Mk3McPun5hjpD/8Sj8/ZKZRaaFh2tRmt4EXb8yA/O1T5ppCA+vhPhLSm9DcANzrro910wFePyAeWLSfznUH2jmLl9+u3nCgo+ZS7wiLvrUzICy+gHY/a3Z7pLpI9s+YOYvt/jA2kmw6l7Y9ZU5BajBpSfeh48Vun0LDa80vzFY8zAE14fzCl+HktllaqGju3bxUdu2bPniC283pdpw9Mn6d9/1dlNEagyNjItIkaD4ite7cLr5KKn30qLfLRbzhjhtH3St02Cg6/PQJLimlCky9bp7Xnbus+ajvIakla9edAfo94t7uaf58gmDzUdJ+WbWGFv3RfiUvEFFWFO4bLdrWWgTuLDEVBhP+y9tzv45E80HQPLMsrcD5nSVxGFl1yn+OpYUWBcumuFatmO2+bPkRbEiIuKRRsZFpEhMcmEQVdoUA4t5q/SY5NPZKqmuCo65PrfbzPnpfuEQ1cE7bRIRqWE0Mi4iRXys0HFaYTaVkgF54fOOU0u/2Yw32W3mFJSy+IaCX2jZdaT8VtxhBuR1LzSn3OxIgQM/m1OSykpPKSIiThoZFxFXicMgeZY5/7e44ASz/ETTGrwlZwd8EV/2Y/3z3m5l7VKvp3kTpz8ehjUPQX4GdHzZfTpSDZWzbx+/PPIIKV278kn79nx76aVsTkk54Xp7f/mFhddfz6fnncfMzp35ftw4jmx2zaf/x6uv8lHbtmRt28ayhx5iZufOzLzgAn55+GEKjh0rZcueLXvoIT477zyyd+9m6dixfHbeeXzRowf/fPQRAEc2buTY//5HSufOzO7dm7RvvvHYlpK2fPEFH7Vty9FdRXd/Pbh2LYtvvpnPL7qITzt04Mu+ffnlkUfKbJ9hGPz6+ON80q4dOxYurNCxiZwJNDIuIu4Sh0HsAJg3Hy74P/MOnDHJ1XNE3CEozsxSUhZHPm+pGknXmI9a6NiBAyy4xjy25ldfTWB0NLtTU/n10UfJP3qUVjfc4HG9vcuWseS22whNSODssWOxHT/OPx99xMLrrqP/rFmENmjgUv/He+4htEED2k+YwKG//mLz558TEB3NuffcU6H2GnY7S2+7jZjzzqP9PfeQ9s03LH/qKXyDglg9bRrWVq04a8QItsyaxbKHHqJu+/aEJlRsXv/xgwdZcvPNBERH02bMGPzCwsjetYsdixaVuo7dZuPXRx5h27x5JL/0Eg26ecjrL3KGUzAuIp45Au+Gw6HkxYfVkTWwam6YIwL88dJLGDYbA2bPJiAyEoDmV17JT/fey5+vvUazESM8rrfq+ecJiIig74wZzvUSevVi3vDh/PnKK1w4ZYpL/ajWren85JPO57lHjrAlJaXCwbgtN5ekwYNpe/PNACQNHMgXPXrwy6OP0vmZZ/jTZqPZgAE0uPhivhk0iC1ffsk5t99eoX2kr15NXmYmPd5+mzpnneUsbzfec75+e0EBPz/wALuWLKHbK68Qf9FFFdqfyJlC01RERESKMQyD7QsX0qB7dwzD4Pjhw85H/EUXkZ+VxeG//nJb71h6Ooc3bKDxkCHOQBwgqmVL4i68kN2pqW7rNC8R1Md26EBuRgb5Ryuef7/p5Zc7f/cPDyc8KQnfoCAS+vZ1loc3boxfeDhHd57gfgIe+IeFAbDr+++xF2YKKo09P58f776b3UuX0v311xWIi5RBI+MiIiLF5B46RH5mJptmzmTTTM8pIo8fOkRQvXouZdm7zVSV4Y0bu9UPb9KEPT/9REFODr7Bwc7y4HjXdKL+4eEA5GVm4hda/ouNrQEBBEZHu5T5hYURHBeHxeJ6MbZ/aCh5R46Ue9sOseefT2KfPqx97TX+fv99Ys8/n4RevUgaOBCrv79L3XVvv01BTg7d33iDep06VXhfImcSBeMiInJGs9tspK9YwbH0dIJiYght1AiApMGDaTJkiMd1Ilu0oOD48Urv22L1fB2GYZSSb7+07fh4/qK7tHKXOhbPqUwNu92tXvLUqRxYs4ZdS5ey56ef+PWRR9gwfTp9P/oIv5AQZ934iy5iz48/sv6dd6jXqRPWgIAKHI3ImUXBuIicWew2SE817yIaVAMuTJVTasfChayYMoWcffucZUGxsVgDAjBsNuIuvLDUdYtnGQEIqW9mIMrcutWtbubWrQRERbmMilcXxUfjHb9D0Uh/SXXbtaNuu3a0Gz+etG++4ef772fb3Lk0Gz7cpU7zK69k6dixpN51F11fegkfX4UcIp5ozriInDl2pMBXSfBdD/j5GvPnV0lmuZxxdixcSOpdd7kE4mDO/bbl5rJ9/nwyNm50W+/4oUMetxcUE0NUq1Zs/fJL8jIzneUZGzey9+efqZ9cPW+WFZqYCMD+5cudZQU5OWz58kuXenlHjriN2Ee1agWAPS/PbbtxF17IRc8/z56ffmLZAw+4jbSLiEmnqSJyZtiRUngzoxJf/+fsMsurcw51qXJ2m40VU6aAp+kgjjLDYP5VV9Fs+HAimjYl98gRDq9fz95lyxi+bJnH7Z57770sue02Flx7LU2HDaOgMLWhX2goZ1cwe8npEt+lC8Hx8fz62GNkbt2KxWplS0oKgdHR5OzZ46y35csv2fjJJyT06kVYYiL5OTlsnjULv9BQ6nft6nHbib160XnyZJY9+CB+oaF0mjjxNB2VSM2hYFxEaj+7DVaMxy0Qh8IyC6yYAA2GaMrKGSJ9xQq3EfGSDLud+C5d2LFoERs/+QT/yEgimjWj/d13l7pO3IUX0uPNN/nzlVf445VX8PH1Jfa882h/990Vzut9uvj4+dH1pZf4/ckn+ePllwmsW5dW11+Pf3i4yw19Ys8/n4N//sm2uXM5fvAg/mFhRJ91Fl2efbbMY2s8eDAF2dn8/uST+IWGcu69956OwxKpMRSMi0jtl54KOWWlcjPMO3imp0K97qerVeJFx9LTy1WvYf/+dH35ZY/LQhs04Jp169zK4zp3Jq5z5zK3e87tt3vM893ksstoctll5Wqbw4VPP82FTz/tVt57+nQA8kukIRzi4S6Y0W3a0O/jjz22x1mndWsueu65MttSWp80v+oqml91VZnripypNGdcRGq/Y3tOXKci9aTGC4qJqdJ6IiInSyPjIlL7BcWfuE5F6kmNF9OxI8H16pGzf7/neeMWC8H16hHTsePpb1yhvKwsbCdIn6iThXKyAanAHiAeSAY0I02qCQXjIlL7xSRDcIJ5sabHeeMWc3lM9cx2IVXPx2ql44MPknrXXWCxuAbkhXm3Oz7wAD6l5AE/HVZMmcLWEhlNSvI0JURKSAHGA8VnqiUA0wBdsy3VgIJxEan9fKzQcVphNhULrgF54Q1POk7VxZtnmMQ+fUh+8UW3POPB9erR8YEHSOzTx4utgzY33kjjwYO92oYaLwXwkESJXYXls1BALl6nYFxEzgyJw8z0hSvGu17MGZxgBuJKa3hGSuzThwY9e7rcgTOmY0evjog7RDRrRkSzZt5uRs1lwxwRLyOJEhOAIWjKiniVgnEROXMkDjPTF+oOnFKMj9VKvU6dvN0MqWqpuE5NKckAdhTW6346GiTimYJxETmz+FiVvlDkTFDe5EhKoiReptSGIiIiUvuUNzmSkiiJlykYFxERkdonGTNriqWU5RYgsbCeiBcpGBcREZHax4qZvhDcA3LH86no4k3xOgXjIiIicmrYgKXAx4U/bad5/8Mw0xc2KFGegNIaSrWhCzhFpHay25Q1RcSbqsvNdoZhpi/UHTilmlIwLiK1z46UUvKJT1M+cZHTobrdbMeK0hdKtaVpKiJSu+xIMe+0mVMiwXDOLrN8R4p32iVypjjRzXbAvNnO6Z6yIlJNKRgXkdrDbjNHxMuKAlZMMOuJyKlRkZvtiIiCcRGpRdJT3UfEXRiQs8OsJyKnhm62I1IhCsZFpPY4Vs7/7uWtJyIVp5vtiFSIgnERqT2Cyvnfvbz1RKTidLMdkQpRMC4itUdMspk1pawoIDjRrCcip4ZutiNSIQrGRaT28LGa6QuBUqOAjlOVb1xOmt1mY99vv5H27bfs++037DZdDOyRbrYjUm7KMy4itUviMEieVUqe8anKMy4nbcfChayYMoWcffucZcH16tHxwQdJ7NPHiy2rpnSzHZFyUTAuIrVP4jBoMER34JQqs2PhQlLvugsM17SZOfv3k3rXXSS/+KICck90sx2RE1IwLiK1k48V6nX3diukFrDbbKyYMsUtEAfMMouFFc88Q4OePfGx6oRPRCpGc8ZFRETKkL5ihcvUFDeGQc7evaSvWHH6GiUitYaCcRERkTIcS0+v0noiIsUpGBcRESlDUExMldYTESlOwbiIiEgZYjp2JLhePbCUkr/eYiE4Lo6Yjh1Pb8NEpFZQMC4iIlIGH6uVjg8+aD4pGZAXPu/4wAO6eLMmmY5564E07zbjlFqKeYxLvbzPUUDSaWzDyZiOV98PCsZF5NSy22DfUkj72Pxp101SpOZJ7NOH5BdfJDg21qU8uF49pTUUkUpRakMROXV2pJRy851puvmO1DiJffrQoGdP0les4Fh6OkExMcR07KgRcZGyvA3Yvd2IE7geuAoI8M7uFYyLyKmxIwVShwMlcjPn7DLLk2cpIJcax8dqpV6nTt5uhoj5p/U4EOTthpyAX+HPfK+2wrNsIATz5lRePKfWNBURqXp2mzkiXjIQh6KyFRMqNWVl+vTpTJ8+/aTXP9XS0tJ4+umnycrKqtB6s2fP5umnn67StkydOpXZs2dX6TZFap25QDJmcBYGDATWeai3uFi9SGAIsL5EnYmYc5A3Yc6ZjgQigNFATom67wI9gVjMkdk2wOse9psEDALmA+dhBuFvFi7bCQwtbFMscBeQW8pxzgQ6Fq5fF7gO2FVK3bKUd5+jcJ8zbgemAWcDgUAM0B9YXqxOOfsl9OxQs18WAO0Lt9cGSClRcTrma/I9MLZwuwkllqWVWOc1oG3h/usDtwMZHo6xkjQyLiJVLz3VdWqKGwNydpj1dJdMEfG2D4CRQD/gWcyA+XXgYmAV0MCsZvnOAoOBJpgB9zHgZeAiYCXuQecIoDEwpXD5/zCDwGeL1XkdM+C7FDMq+xozWLRjBn/F/Q1cDdwK3Ay0LGxDL2A7cCdm0PgB5klDSdMxTwjOL2zTPsyg+KfC44wspX9Kqsg+PbmpsC2XAGOAAiAV+AXzRAMq1i8bgSuB2zBfx3eBK4B5QMnLOcZiBv+PYY6Ml2YiMAnoDfwLs+9fB37H7C+/UtesMAXjIlL1ju2p2no1UKNGjbjvvvuYP3++t5vCuHHjsJSWlk/kTHcUM6AcA7xVrHwkZrD7NPCqWWR9wArRwDLMn2CODp8LPA68V2Lb5wL/V+z5wcLnxYPx73GdajIOc5T4BdyDzk2YAWa/YmXTgH+AzzADUDAD9XYl1s0H7gfOAn7AHEEG84RjEPAiZvBZHm+Vc58eWJZazED8zsK2O9yD65epFemXf4DPAcfMx5uAVpjHWzIYjwa+o+xpKemYJyt9Mb8xccwjaVXYjg8xT2qqiKapiEjVC4qv2nqnmN1ux2ar2iwvFosFX1/fahEE+/r6YtVFhiKeLcScenA1cKDYwwpcACwxqwUcCsCyxmJOu4gutv45mAHfHA/bvq3E82TMgDyzWFnxgPNI4b67AVsKnxfXGNdAnML9xgPDi5UFA7eUqLcc2I85MhxYrHwgZpD5rYf2l6a8+/TA8oXFnBLyuKeFxX6vSL/UBy4r9jwcuAFztH9vibo3c+L54YuAPGACrpHyzYXbrkhflYNGxkWk3HJzc1myZAkbNmzg6NGjBAQEEBcXR+/evYmPj2fq1KkkJSUx9NLBZtaUnF2AwfSdowAYlTAdgLScJN7bNYrhZ9fh4N8/sHz5cnJycmjYsCGDBg0iOjraZb8rVqzgp59+Iisri9jYWPr27evWNpvNxg8//MDGjRs5dOgQdrud+Ph4unfvTuPGjZ31MjIymDZtGn369MHHx4fffvuNjIwMbrnlFuLi4k7YB1OnTiU2NpYLLriAhQsXcuDAAaKioujZsyetW7d21ktLS+O9996jadOmLuvv3LmT77//np07d2Kz2YiKiuLcc8+lc+fOLvUyMzOZM2cOW7Zswc/Pj3bt2tG7d298fIr+M/z888+sX7+egwcPkp+fT0xMDBdffDFt2rRxa3NSUhJDhw494fGJnHE2Fv7sWcrycPNHcHqw+UtLD3VaY87ldlwQ6NCwRL2owp+Hi7bLT5iB6TLc55MfwZxr7tAYd9uAZrgGsp7aua2UcjCD8R89lJemvPv0wLLFYgbP0SeoeKJ+iSz23FNbWhT+TAOK/2n31IclldZX/phTlLZRpTQyLiLl9u2337J8+XJat27NgAED6NKlC76+vqSnp7tW9LGa6QsB97+QRc9//PlnNmzYQJcuXbj44ovZuXMnKSmuV92sXLmSb775htDQUHr37k1iYiKffPIJmZmZLvVyc3NZuXIljRo1onfv3nTr1o3s7Gw+/PBD9u4tOTQCq1ev5rfffqNDhw707duXoKDypyQ4dOgQs2bNolmzZvTq1QsfHx9mzpzJ5s2by1xv8+bNTJ8+nfT0dC644AL69u1LUlISGzdudKlnGAYffvghQUFB9O3bl0aNGrFs2TJWrFjhUu/XX38lLi6O7t2707NnT2c7/vnnn3Ifi8gZwYZ5I5qPC38WT7Xn+P0DzFHyko8vK7Hf0kZgHdMxNmPOvT6AOf3i28J93lWibQ7VPXNKValov1RENexDjYyLSLn9888/dOjQgX79ir4nveiiizxXThxmpi9cMd61PDgBmk2CXVspKCjgtttuc06hCAoKYt68eezfv5/Y2FhsNhuLFy8mLi6OkSNHOuvFxMTwzTffEB4e7txsYGAgEyZMcJmO0bFjR1555RV+/fVXhgwZ4tKMzMxM7rjjDkJCQqiogwcPMmLECOdIeIcOHXjllVdYtGiR20i4g91ud55U3HbbbQQGFn1PbBiuWWcKCgpo27Yt3bp1A+C8887jzTffZNWqVZx//vnOeuPGjcPPr+gqok6dOvHWW2/xyy+/0KJFC0QEM6vGeMzsHw5RxX53fGRjMS/W8yQfcmIKh2f/9rB8A2Zmkor+OfkaMwPJV7iOoi+pwDYaAWsxA/ziYx8l29moWHnJbwH+Lra8KvfpgdHEMDOfHKL00fGK9ssmD21xjEkknbhNbor3VZNi5XnAVkp/n5wkjYyLSLkFBgaya9eu8qfrSxwGl6ZBZDsIbw29lsClWyG2KwDt27d3CZ4bNjT/6h4+fBiA3bt3k52dTceOHV3qtW/fnoAA17sz+Pj4OOsYhsGxY8ew2+3Ur1/f48h469atTyoQBwgLC6NVq1bO5wEBAbRr1469e/dy9OhRj+vs3buXjIwMOnfu7BKIAx7nlZ933nkuzxs2bOjsF4figfixY8fIzc2lYcP/b+/e46Iu8/6Pv4bhoBwFBVEB0TTU8pCWrhWbminqtha5lm6l3d3d3WUHrXa39q5Vayur+y5r21/d7b2lu5VlZmejrJU0D1kWmUmmluEBPKageICZ7++Pa2ZkYIDBQWaA9/Px4AHznWu+389cDPCZi+v6XBkUF7fchbEiDbIYM6+5enEn94+SezFkPGahpq9a2K5//B1POo7V3zKLNA9WuX8DJrkcewrxuX+tVX0/fghTDcRfY4FdwKIqx8rxXowKpkpJCvAs3iUI38eUZhx3Gq7pg3W5ZZ6vr8Wi7n5oaL/sAt6ocrsU+Aem1GH9sw9rGomZkvJUtRj+7oqjIX3lB42Mi0idioqKKC8vJy4ujosvvpi3336bJ554gk6dOtGzZ0/69+9PYmJi7ScIs0NkO/N1tTKGCQkJXrfdU0WOHj0KwKFDZpVO+/btvdrZ7Xaf1ywoKGD16tXs27cPp/Pk/zHbtWtXo62vY/5KSkqqkUC7Yzx48CCxsbE1HnPgwAEAUqptp+5LeHh4jTcKbdu25dixY17Hvv/+e5YvX05JSUmjL0AVafYcmBFxX9sduN2PWZT3DGYXxoGYnRiTMWX73sOULXzCdco5DsIvDYehmIod7tKGCZhSeA01CpP0XYopV3gYs2NlCuDve+obgKcxCxbXYRZW/hOzoLKqCEwVl+swCyEncbK0YSYnp4A05jV9sIZZpq+fwszXz8FMO1kBDMdUK2lov5yJ+X58DnQEnnc9t4a8qakqGbgH84YhB1NecROm7vh5mNrsjUjJuIj4tGmT+X/jyy+/7Els4+PjGTNmDA6Hg61bt7Jq1SpWrlzJxIkT6dmzZ62VQyzL8nlf1cWIgVq/fj1vvfUWvXr14vzzzycmJoawsDA+/fRTTyJcVdVR5VDjTwWWn376iQULFtC1a1fGjRtHbGwsdrudgoICvvnmmyaIUiTEraDmiHh1xa52kzGLCucAj2FGjrtgqp9UKWFnXWyZ0fSZmDrVEZjE9hH8WxhYXRZmdPle4C7MKO5NmGTw3/w8RzSmVN+tmDcG0cBvMTW8c6q1neq6fw6m7F8MpgrJI/hfY7yh1/TlBUwVmr8Dv8O8mTkXON91f0P7pacrjt9hkuZuwKvUrDzTELNc13sa80YlCVMt5iEatcY4KBkXER8KCwt544036Nevn9fx0tJS3nnnHSZOnMhVV13FkSNH+N///V9WrFhBz549adOmTY3RWzCjxXWOntfCPXK+f/9+r4ooDoeDgwcP0rFjR8+xjRs3kpiYyMSJE72S2fz8/AZftz4HDhyo8QZj//79QO0j7u4KMXv27KF79+4+2zREYWEh4eHhXH311YSHn/xVXlBQEPC5RVoEf0eW3e2GuT6qcQCfuqavfAr88mKwX1zPOWfhe6R8quujqktdH9VVr2O9rY7rZeB7oamv/wpMdH0Eyt9rznN9rjoFyI5Jsu+q4/z19UtpteOjXB+1mUrNvq/vvmnUrGl+GmjOuIh4cTqd5OXl1dkmLy8Pp9NJTEwMcXFxnikSSUlJnpJ9bt9//32Nyif+6ty5M9HR0axbt87rnAUFBTWSfl+j7Dt27GD79u2ndO26lJWV8d1333luHz9+nK+//prU1FSfU1QAOnXqRLt27VizZk2N2Ksv4PSHzWbDZrN5PfbgwYNecYm0av5uY1BHu8WYGRzuKcLjXLer77QuEgiNjIuIl6KiIkpLS+ucQlJaWspHH31EaWkpu3bt8tT9Puecc9i4cSMvvvgiZ511FgcOHOCbb745pVFxMHPDR4wYwbvvvsv8+fM566yzOHjwIAUFBTXO2bNnTwoLC3n11Vfp2bMnP//8M+vWrSM5OZkTJ06c0vVr0759e95++2127txJbGwsX331FUeOHKlRsaUqm83GuHHjWLBgAc8++ywDBgwgLi6Offv2sXfvXq6+umGTEM8880zWrFnDiy++SN++fTly5Aiff/45SUlJ7N69O9CnKNL8ZQNpgNnuoCab6/5s3w93r/208K6Gt9N1fBEnN3xsMU5gqpzUJYGQLA/YnGlkXKS1cjpgdz5sW2A+O83Is7+VUtauXcu+ffsYO3YsQ4cOBaBHjx6MGjWK/fv3k5eXx44dO5g0aZJXCcKGGjRoEGPHjqWsrIylS5dSVFTEVVddVeOcAwYMYMSIEZSUlPD++++zdetWLr/8cjp37nzK165NUlISEyZMYMuWLXz00Uc4nU4mTJhAjx496nxcjx49mDJlCu3bt2f16tV88MEH/Pjjj6dUhrBbt278+te/5vDhw+Tl5bFhwwZGjhzpVeVFpFWzc3K79dq2O5iLz1rgda39dB+b7mrXoqzC/Kegro9XgxZdi2WzTuX/oy1YaWkpCQkJHDp0KKAEIlAVFRUsWbKEsWPHhvRCs1CmPqzD9sWm/nd5ldVN0Wkw6Em2OQYyf/58wsLC6NevH+vXr/eqTOI2ZcoUMjMzmy7mEOHegXPy5Mn1ttVrMHDqw8C1+j70VWc8HZOI1zK0nY8p7OHWtqKCBUuWMGnsWI5W6cNl+Jxm3nz9jKmOUpez8H8KUBWN/ToMlXytMWiaikhrs30xrHD/87WK8p2wYgIZF7xGfHx8rfWywVRVcdcEFxEJabnAeEzVlGJMIplN7btj0vC1ny1GIo2+oY3UT8m4SGvidLh2xKztn682wr6aQc6o91m0uPYlSjk5OTXmlDudToqKiigrKyMuLo6MjIxGLV14uh05cqTOhZR2u91TB11Emhk7DRrCboS1nyJ+UzIu0prsXeE9NaUGC8q307vDXi6//HK2bt3qdW98fDw5OTmebeDdCgsLycvL86qaUlvbUPW3v/3Ns8mQL127dmXq1KlNF5CIBE2Aaz9FGkTJuEhrctTPf6oeLSYr6wK2bt3K5MmTPTtw+hrtLiwsZOHChTVOUVpaysKFC5k4cWKzSMhzc3OprKys9X73FvbTp09voohEJFjcaz8n0OC1nyINpmRcpDVp6+c/Vau0y8jIqHWxjb81ybOyskJ+yormwItIVbmY8oW3A/urHE+jzrWfIg0W2n8dRaRxJWebqik1xnrcbBCdbtr5wV2TvC6lpaUUFRU1LE4RkRCQi9n48j3X7feAH1EiLo2rRSXjmZmZnl3p3B9z5swJdlgioSPMDoPqKbw7aK5p5wd/a5L7205EJNTYgQtdX1+IpqZI42tx01Tuv/9+brjhBs/tuLi4IEYjEoLScyF7US11xuea+/3k78+Xfg5FRER8a3HJeFxcHKmpqcEOQyS0pedCl/GmusrRYjNHPDnb7xFxt4yMDOLj4+ucqqKa5CIiIrVrccn4nDlzeOCBB8jIyGDy5MnMmDGD8PDan+bx48c5fvy457Y7qaioqKCiouK0x1sb97WDGUNzpz70Q9IFJ792OM2Hi7/9d8kll/DGG2/Ueb/D4cDhaHEbR9dLr8HAqQ8Dpz4MnPowcI3dhy3pe2Gz6trlopl5/PHHGThwIElJSaxatYp77rmH6667jscff7zWx8yaNYvZs2fXOP7yyy8THR19OsMVERERkVNQXl7O5MmTOXToEPHx8cEOJyAhn4zffffdPPLII3W2KSwspFevXjWOP//889x4440cPnyYqKgon4/1NTKenp7Ovn37gvrNraioYOnSpVxyySW1lpWTuqkPA9PQ/nM6nezYsYPDhw8TGxtLWlpayJczPN30Ggyc+jBw6sMqHMBqoARIBYbi14pM9WHgGrsPS0tL6dChQ4tIxkN+msqdd95Z76533bt393l8yJAhVFZWsm3bNrKysny2iYqK8pmoR0REhMQPXKjE0ZypDwPTkP4744wzTnM0zZNeg4FTHwau1ffhYkzR8KqbEKdhdvfxc916q+/DRtBYfdiSvg8hn4wnJyeTnJx8So8tKCggLCyMlJSURo5KREREmo3FmO00q88F2Ok6vggVD5egCflk3F+rV6/ms88+Y/jw4cTFxbF69WpmzJjB1VdfTWJiYrDDExERkWBwYEbEfU3KtTBbLEwHxqMi4hIULSYZj4qK4pVXXmHWrFkcP36cbt26MWPGDO64445ghyYiIiLBsgLvqSnVWcB2V7thTRGQiLcWk4wPHDiQNWvWBDsMERERCSXFjdxOpJG17lIHIiIi0rJ1auR2Io1MybiIiIi0XNmYqim2Wu63AemudiJBoGRcREREWi47pnwh1EzI3bfnosWbEjRKxkVERKRly8WUL+xS7XgaKmsoQddiFnCKiEjr5XQ42LtuHUf37qVtcjLJgwYRZtdQp1SRiylfuAKzWLMTZmpKA14mn2I27zyFh4rUSsl4c+RwwIoVUFwMnTpBdjboj46ItFLbly5l3cMPU757t+dYdMeODLrnHtIvuSSIkUnIsXNK5QvfcT10HHDUdayBm3eK1ErTVJqbxYshMxOGD4fJk83nzExzXESkldm+dCkrZszwSsQByvfsYcWMGWxfujRIkUlLsRi4xsdx9+ad+usrgVIy3pwsXgwTJsCOarsX7NxpjishF5FWxOlwsO7hh8HysbWi69i6OXNwOhxNHJm0FPVt3glm8069wiQQSsabC4cDbr+9zj86TJ9u2omItAJ7162rMSLuxbIoLylh77p1TReUtCgN2bxT5FQpGW8uVqyoOSJelWXB9u2mnchp5HQ62LYtn2++WcC2bfk4nXoDKMFxdO/eRm0nUp0275SmoAWczUWxnz/q/rYTOQWFhYvJy7ud0tKTbwzj49PIyXmS3r21jEmaVtvk5EZtJ1KdNu+UpqCR8eaik58/6v62E2mgwsLFLFw4wSsRBygt3cnChRMoLNSaBWlayYMGEd2xI9hq2VrRZiM6NZXkQYOaNjBpMbR5pzQFJePNRXY2pKXV+UeH9HTTTqSROZ0O8vLqXsaUlzddU1akSYXZ7Qy65x5zo/rvRtftQXffrXrjcsqqbt5ZnTbvlMaiZLy5sNvhSdevhFr+6DB3ruqNy2lRVLSixoi4N4vS0u0UFWnNgjSt9EsuIfuJJ4hOSfE6Ht2xI9lPPKE64xKwXOCfPo5r805pLJoz3pzk5sKiRaaqStXFnGlpJhHP1a+E1sjpdFBUtIKysmLi4jqRkZFNWFjjvikrK/NvLYK/7UQaU/oll9BlxAjtwCmnzaXAEuA9tAOnND4l481Nbi6MH68dOAVougWVcXH+rUXwt51IYwuz2+k4eHCww5AW7kIgIthBSIujZLw5stth2LBgRyFB5l5QWX0et3tB5cSJixotIc/IyCY+Po3S0p01rmfYiI9PIyNDaxZEREQaQnPGWyqHA/LzYcEC81mbAbUoTb2gMizMTk6OexlT9UXE5nZOztxGnx4jIiLS0ikZb4kWL4bMTBg+HCZPNp8zM81xaRGCsaCyd+9cJk5cRHx8F6/j8fFpjToKLyIi0ppomkpLs3gxTJhgduSsaudOc3zRIi30bAGCtaCyd+9csrLGn/YFoyIiIq2FkvGWxOEwlVaqJ+JgjtlsMH26WQCqBZ/NWjAXVIaF2cnMHNbo5xUREWmNNE2lJVmxwrvkYXWWBdu3m3bSrLkXVNa1L1x8fLoWVIqIiIQ4JeMtSbGfUxL8bSchSwsqRUREWgYl4y1JJz+nJPjbTkJaUy+odDodbNuWzzffLGDbtnxPpZbajouIiEj9NGe8JcnONrtx7tzpe964zWbuz9bUhZaiqRZU1ra50NlnT2LDhgU+Nx3SQk8REZH6KRlvSex2ePJJUzXFZvNOyG2uqQxz52rxZgtzuhdUbtr0Dq+/7mtzoR2sWvVYjfZm06EraNu2PUeP7vccPx07g4qIiDR3mqbS0uTmmvKFXbynLpCWprKGcko++ugP+N5cqDambdVEHE7uDFpYqHr3IiIibhoZb4lyc035whUrzGLNTp3M1BSNiMspKCvb2UhnsgAbeXnTycoarykrIiIiKBlvuex2GDYs2FGIVHNyZ1DVKhcREdE0FREJgobuDPr55/+PgoJ5NY7v3buR/PxZHDy4rXECExERaWJKxkWkTnFxXah9c6FTPWfDymvWlYx/8slsJeMiItJsKRmX0OZwQH4+LFhgPjtUw7qpjRz5iOurxkjItTOoL5ZlUVFx1Od9lZXHsCxnE0ckIiJNRXPGJXQtXgy33w47TtawJi3NlG9UVZgmk5V1KRMnLvJRZzyds8++qkad8eolDU+yARZOZwXPPtufa6/9mM2bl7B+/T/Zs2cDx48fIjHxDAYPvpXzzrvJ86i5czM5dOgnAGbPNm8Iuna9iAEDpvLWW9cBMH/+cE/7KVOWUVDwAt9//x533lmM3R7hFcU//zmKQ4d+4pZbNvn1/N98cyobNy7ippvW8957N1FU9ClRUQmce+5/8stf3ofNdvJNimU5+eyzp/jyy79x4MBWoqISaNt2AEePDiUiIsXrOaWknM3gwbfyr3/9F3v2bGDkyDmkpg5g/vzhXHHFAvbs2UBBwQuUlRXzH//xBc89N4hRox5n6NAZXvFt376K55+/gNzcl+nbd5Jfz0lEREKHknEJTYsXm3rp1Tcv2rnTHFeZxiZV1+ZCF1/8cI3jmza9xZtvTuXEiTLPOWJjU3E6K4iNTeWaa5YSHd2BL754hpSUs8jK+jVhYeF8//07LFlyM5blZPDgaQDk5Mzl/fdvJTIyluzs/wIgJqYjSUlnMHjwbaxd+xQXXvhHkpN7A9ChQ2/69buGr7/+B1u3fsCZZ/7KE8PhwyX8+OO/uOiimQ16/pbl4MUXc0hL+wUjRz7K1q155OfPxOmsZPjw+z3t3nnnRr7+eh4DBlzH4MG3ceDAFj777GleeWUc11+/yuuNwf79m3j99UkMGnQjAwfeQIcOWZ77li9/ALs9kqFD78LhOE6HDr1IT7+Ab755qUYyvn79S0RGxtGr1/gGPScREQkNSsYl9DgcZkTc1y6ilmU2MJo+3ZRvVLnGJlPb5kK+jvfunUtJSQHLlz/AuHHPEhHRlo8/vod27bpx9dUf0LZtIgBTp35CRERbz+MGD76FF1/MYc2axz3JeK9el/Gvf91LdHQH+vW72us6Xbtms3btU5xxxiVeMcTEJBMfn8b69S96JePffLMAy3LWOE99KiuP0aNHDmPGPAXAeefdzIIFl7Jy5SMMGXIb0dEdKCr6lK+++j9yc1+ib9/JAFRUVLB7dww//DCbjRtf8xwHOHBgC7/9bR49eoz2HNu2Ld9zvRtu+MKrb/r3v5Z3372Rffu+o0OHXgA4HBVs3LiQ3r1ziYiIbtBzEhGR0KA54xJ6VqzwnppSnWXB9u2mnYQsm838eunQIYulS39Hu3aZXHvtR55EHPBKNo8dO0R5+T66dr2In3/+gWPHDgV07b59f8umTW9z/PjJ0flvvnmJ9PTzSUzs1uBzDh58S5Xz2xg8+BYcjhP88MNHAHz77WtERSXQvfsllJfv83xER59BZGQsP/64zOt87dp180rEq+rff4pX3wCcddZEwsPbsH79S55jW7d+QHn5vga/uRARkdChkXEJPcV+lr3zt500CafT4TVdxb3ocMGCS4mJ6cjVV39AZGSs12OKilaSnz+THTtWU1FR7nXf8eOHaNMm4ZTj6d//WlaufITvvnuD/v2vZd++TRQXr2PcuGcbfC6bLYzExO5ex9q3PxPAU8nlwIHNHD9+iP/+75TqDwegvHyP1+263hC0a1fzvjZt2nHmmZeyYcPLjBjxAGDeXMTFdaFbtxF+PxcREQktSsYl9HTys+ydv+3ktCssXFxjgWdkZBwAvXtfwddfz2f9+pc499wbPfcfOLCVf/zjYjp06MWoUY+TkJCO3R7J5s1LWLPmiYAriCQn96FTp0GsX/8i/ftfy/r1L2K3R3LWWRMDOm9tLMtJTEwKubknR64rKytZu3YtgwcPJj7e+/UaHt62+ik8qo+Ku/Xvfy0bN77G9u2rSEnpy6ZNb3PuuTd7/gshEuocwAqgGOgEZAOabCitnZJxCT3Z2aZqys6dvueN22zm/myVxwsFhYWLWbhwAma7+5Pcize7dr2IsLBwliy5maioOM+86e+/fweH4ziTJr1NQkKG53HVp3MAXhVLqt1TZ2z9+1/LBx/cQVlZMRs2vEzPnuO8psn4y7Kc/PzzD57RcID9+78HoF27TAASE8/ghx8+Ij39Ak8yXVFRQWHhcbp1u5iIiIga522oHj1yiI5OZv36l0hLG0JFRTn9+18T8HlFmsJi4Hag6iTENOBJQMvxpTXTcIqEHrvdlC8Ek3hX5b49d64Wb4YAp9NBXt7tVE/Eq/rXv+5l3Lhn6NNnAm++OYVNm94GwGYz3z+ryhuuY8cOUVDwQo1zRETEcOzYwRrHIyNjXI+reR/A2WdPwmazkZd3Oz///ENAc6vXrn3a87VlWaxd+zRhYRF063YxYOZ0W5aD5csfqPFYp7Oy1hgbIiwsnLPPnsTGjQspKJhHSkpfOnbsF/B5RU63xcAEvBNxgJ2u44ubPCKR0KGRcQlNubmmfKGvOuNz56qsYYgoKlrhNTXFl8OHd7F9+0ouv/xFTpy4jNdem8hvf7uEM84Yhd0eyYIFlzJo0I2cOHGYL7/8GzExKRw+7L0eoFOnQXzxxTMsX/5nkpJ6EBOTQrduI0hNHYDNZmflykc4duwQ4eFRdOs2gpgYM287JiaZHj1y2LjxNdq0aUfPnuNO6XmGh7dhy5Y83nxzCl26DGHLlvfZvPk9Lrzwj8TEJAOQmXkRgwbdyKefPkxJSQFnnDEKywpjx46lPP30zYwZ8yR9+kw4petX1b//taxd+xTbti2rsiGTSOhyYEbEfb1ltzD/35oOjEdTVqR10si4hK7cXNi2DZYtg5dfNp9//FGJeAgpK/NvEW1Zmdl85ze/WURa2i945ZXxHDt2kN/8ZhE2m42lS+9i3bpnGTToPxgy5PYaj7/ooj/Rs+dYVq58lNdfn8Qnn5ja3rGxqfzqV89y5Mge3n77el5/fRJ79270emy/ftcC0KfPRMLDo07pedpsdq6+Oo/Dh0tYuvR37Nz5ORddNNOzkNLtV796ll/96jmOHNnDxx//kfz8ezl8+BvOPnsS6ekXnNK1q+vceRDJyWd5KsaIhLoV1BwRr8oCtrvaibRGGhmX0Ga3w7BhwY5CahEX598iWne7iIi2TJ2a73VfVtalNdqfc851XrdjYzsyefK7Ps89cOC/M3Dgv9d6bbs9EiDg8n+Jid25+uoP6m03aNANDBp0A2DmjC9ZsoQRI8Z6zRmfPn2bz8dmZg5j5szap/y42e0RZGYOIz6+i3/BiwSRv3WvVB9LWiuNjEvz4HBAfj4sWGA+OxzBjkiAjIxs4uPTqH0hpY34+HQyMoK32PbLL/9GYmJ3MjIuDFoMjWnXri8oKSnwjPiLhDp/616pPpa0VhoZl9C3eLHvueNPPqkpK0EWFmYnJ+dJVzUVG96zQk2CnpMzl7Cwpp8JumHDK+zevZ7Nm98jJ+fJGhVZjh07RGXl0TrPERubejpDbJA9ezawa9c6Vq/+H2JjO3H22VcGOyQRv2RjqqbsxPe8cZvrftXHktZKybiEtsWLYcKEmiUOd+40xxctUkLeyNyb9xw6VAxE43Q6gNrL8vXuncvEiYtq1BmPj08jJ2cuvXsH5/vz+uuTiIyM5Zxzrue8826ucX9e3u18/fX8Os/hz5SRprJx4yI++eR+OnTI4oorFhAe3ibYIYn4xY4pX1j7W3aYixZvSuulZFxCl8NhRsR91Rq3LFPmcPp0GD9eZQ4bSdXNe8LC2tKv3wKeeaYvo0c/UmdS3bt3LllZ47124MzIyA7KiLhbfYn0BRf83q955JddNo/LLpvXSFGdumHDZjFs2KxghyFySnKBRfiuMz4X1RmX1k3JuISuFSu8p6ZUZ1mwfbtpp0WeAatt856ysl0sXDiBiRMX1ZmQh4XZycwcdnqDbETJyX1ITu4T7DBEWo1cTPnCQHfg1C6e0tIoGZfQVezn2np/20mt6t68xxzLy5tOVtb4oI52i0jzZgeGBfB47eIpLZGqqUjo6uTn2np/20mt6t+8x6K0dDtFRaoELCLB0ZJ28RxGYG9KpGVRMi6hKzvbVE2x1VI2z2aD9HTTTgLSkM17RESaWn27eILZxfNUi96WA7OAfB/3LQHuD1O6JKePXl0Suux2U74Qaibk7ttz52rxZiNo6OY9IiJN6XTv4lkOzKb2ZPzP+jsjp5GScQltubmmfGGXajsNpqWprGEjag6b94hI66VdPKUlUzIuoS83F7Ztg2XL4OWXzecff1Qi3ojcm/cY1RPy4G7eIyKt2yxgsp9tpwH/U+X2CeBPwCAgAYjBVF9ZVqXNNiDZ9fVszG88m+u6U4G/uu67bPx4IiMiah2yqM1zwBlAW2Awvkfv/YnTHasN+G9XXN2BaGAU5j8DFvAAZlFrW0z1mgM+rvf/gLOAKKAzpt8OVmszDDgb2AgMd12nC/Bovc9YGkrVVKR5sNtVvvA0q23znri4LowePSdom/eIiIDZeqyijvsTgd7AXcB5wC+BUuD/gEnADUAZ8HdgNLAWGIBJxJ8BbgIu52RVln7AEWAXsBSYvm4d/fv3Jzzc/9Tp78CNwPmYOe0/AL8GkoD0Ku38ibOqlzAJ/K2YZPtRYCIwAjPV5g/AFuAvrv54vspjZ2HedIx0PedNruf/ObAS7y3efgZyMH0yEVMr/g9AX2CM370g9VEyLiIeVTfvOXSomG3b4Kab1hMVpd0eRSS4hgEfub6uvpDThklmR2BGep/HJOOJmNHkyCptbwB6YRLVv2NGoSdgEtN+QPWtwM7EJOPDduxgbL9+dexH7K0C+CMmkV5WJYY+wH/gnYz7E2dVO4HNmFF0MAtXHwaOAl9wMrnbi0ncn8GMgu91tRsFvM/J6RG9gFuAF4HrqlxnF/AP4BrX7euBrq54lIw3Hk1TEREv7s17+vSZ4LktIhJsD2JGZqutIKKz63gu0A7IwoxAg6lr7k5wnZhR5ErgXODL0xsuXwB7gP/EO8meyskk2q2hcf6m2jmGuD5fjfco6xDMCPpO1+2PXLen450A3gDEA+9Vu04s3m9OIjFTbX5AGpOScREREQl5GZiEextmpPmXmOSwCO8NfxIw0yvc5mNGvNsA7THTUt4DDp3meH9yfe5Z7XgEZq53dQ2JM6PabXdinl7LcXd/uGPKqtYu0hXTT9WO+1rWn4h3/0rgNE1F/ONwmG3ni4vNJjvZ2SopKCIija76dvdO13F7lc/DgG7AuirHq3JPY3kRMxJ9GfA7IMXV/mFga2MHHoCGxlnbX9/ajvuqz+6Pxj6f+KZkXOq3eDHcfjvsqFLlNS3N1ABXRRMREWkkvra7jwvgfIswI76L8R7hnVmtXV0VUhpaPcWtq+vzZsxcdrcK4Eegf5Vj/sYZKHdMm/AenT/himlkI19P/KNpKlK3xYthwgTvRBxg505zfHFz2oBYRERCVW3b3Ze5Pr97Cud0j+xWHcn9DFhdrV206/NBH+eIcX0+3IAqKmDmeycDz2KSXbd5Pq7jb5yBGomZkvJUtWv9HTMdZlwjX0/8o5FxqZ3DYUbELR//kLIsswvm9OkwfrymrIiIyCmra7t7t//CVPVoyF+bX2GS/MsxieaPmOS4D3C4Sru2rmOvYqqnJGFqbJ+Nqf0N8H/9+lFpsxEFXOXHtSOAP2NKG44ArnRd/wVqzhn3N85AJQP3YEob5mDKLG7C1B0/j5qVZKRpaGRcardiRc0R8aosC7ZvN+1EREROUX3b3YMps9fQvzZTgYeAr4HbgA8w87PP9dH2/zCVWmZg6n0vch3PBaY5HHyVksJ1djuTGnD9/8Akurswc8FXAG9Tc6FlQ+IM1CzgaczC1xnAQlecH4LfZRulcSkZDyaHA/LzYcEC89nhCHZE3or93FjY33ZyetlsMGvWydvz5plj27YFKSCXYcNOfcOmUH1OItKoTmW7+3n4HjXOBza4vrZhRoK3AccwZQLHuR67rdrjhmLKER7HjNDPch23A084nczPy+N4ZWWDFy/ehCkFeAyzsU62K8b8Km38jTPTFdtd1a4xzHV8QrXjU13Hqyf104BCzPSZEswbhnbV2uRzsh+rqh6TBE7TVIKlOSyK7NSpcduJiIj44O9fEf21kZZII+PB0FwWRWZnmzcItlrWkttskJ5u2knoueYaOHoUunatv+3p9OGH5qMxhMpzEpFGlY3vmtZuNszUjlD5a3MAM6Jc28fe4IUmzZCS8aZW36JIMIsiQ2HKit1uRuqhZkLuvj13rhZvhiq7Hdq0qf3NVFOJjDQfjSFUnpOINCo74PprUyMhd9+eS8MWb55OuZhR+to+zgteaNIMKRlvav4uilzd2AWNTlFuLixaBF2qbUCclmaOh8qUmtPpp5/g5pshKwvatoX27c1/MF55xXu+v3s+88qVcMcdkJwMMTFw+eWwt9o4idNp5kJ37gzR0TB8OGzcCJmZMHWqd9uDB80btPR0iIqCHj3gkUfMOeria351Zib86lfw6acweLBJbLt3h3/8w/uxBw4Q9oc/MPy22whPTIT4eBgzBr7+uqG953vO+J49cP310LGjiaF/f5g/v/5z1TZn/P33zX9oYmIgLg7GjYNvv214rCISNLn43u4+jZPb3YeK/wGW1vHxUvBCk2ZIc8abmr+LHUtKTJIWCnJzTfnC1roD5+efw6pVcNVV5k1IXp6ZSvT66yfbpKWZPgK49VZITISZM03SOHcu3HILvPrqyfb33AOPPgqXXgqjR5skd/RoOHbM+9rl5XDRRWYK0403QkaGieWee8z3Yu7chj+fLVvMm4nrr4cpU+D5580bgEGD4KyzTJsffiDs7bcpOe88oi++mPB9++B//9fEsnGjeRNxqo4eNcn5li2mX7p1g9deMzEcPGj+c9QQ//yneR6jR5s3KeXl8MwzcOGF8NVX5g2IiDQLucB4vHfgzCZ0RsTdBtXfRMRvSsabmr+LHVNTobT09MbSEHb7qVfEaO7GjTPJK5gk/I03ak4z2rkT/vpX83X79maOtHsqhdMJTz0Fhw5BQgLs3g2PPw6XXWbO5TZ7tnflEDDttm41SWXPnubYjTeaZPixx+DOO82IeUNs2gTLl5+c6z9xojnHCy/Af/+3Oda3L5XffkthXh7dxo6FiAgzX7tXL/j73+G++xp2zaqeew4KC+HFF+G3vzXH/vM/TaJ/773wb/9mRrf9cfgw3HYb/Pu/m/O6TZli/pPx0EPex0Uk5Lm3uxdpLZrNNJUHH3yQ888/n+joaNq1a+ezTVFREePGjSM6OpqUlBR+97vfUVlZ2bSB1sffRZFDhzZtXFK7tm3NZ4fDJH51zfcHkxhW/f5mZ5vH/vSTuf3xx1BZaaa+VHXrrTXP+9pr5vGJibBv38mPkSPNOZcvb/jz6dPHe9FtcrJJXH/44eSxqCgIc/16cDhg/36IjTXtvvyy4desaskS82ZzUpVqvRERpm8PH4ZPPvH/XEuXmtH0SZO8+8duhyFDYNmywGIVERE5zZrNyPiJEyf4zW9+w9ChQ/n73/9e436Hw8G4ceNITU1l1apVFBcXc+211xIREcFDDz0UhIhr4V4UOWGCSdiqJnFaFBk6HI6T03KSkszXzz1Xc+63L/v3e99OTDSff/7ZfHYn5T16eLdLSjrZ1m3zZli/3iTMvuzZU3881WVk1DyWmHgyPgCnk7Ann+Tixx8nfM8e7wXF7ds3/JpV/fSTGeUPqzYW0Lv3yfv9tXmz+TxihO/74+MbHp+IiEgTajbJ+OzZswGYN2+ez/s//PBDNm7cyEcffUTHjh0ZMGAADzzwAH/4wx+YNWsWkY1VzaExuBdF+qozPneuub+iImjhtXq+asADDBzoXzJeNamtyteIen2cTrjkEvj9733ff+aZDT9nbW/0qsb30EPY77uP/RdfTJtHHyU8JcUkz9On179wtCm5Y/nnP81oe3XhzeZXnIiItFIt5i/V6tWr6du3Lx07dvQcGz16NDfddBPffvst55xzjs/HHT9+nOPHj3tul7rmaVdUVFBxOhPiSy+FsWNN1ZSSEpNIDB1qEqUq1z6tMbRwp9SH77xj5kZblmd6SvjRo1h2O47CwpNTViyL8GPHzHHXGz1bZSXhFRVUtm+PVeWatspKwoHKykqsigpsXbqY2999h5WWdvLa+/cT8fPPOJ1OHK7Hh3fvjlVWhuOii+p6ooDZxtjhcOB03bY5HIS7n7/7fIBlWZ7zu9ldibjnuq+9hvOXv6Tg1ltJvuQSrAizSXL4wYNY7dvXeHxdqp/bnpGB7ZtvqDx+3Gt03LZhg+mXLl08/Vffc7J17Woek5SEVVsfBfFnSD/HgVMfBk59GDj1YeAauw9b0veixSTjJSUlXok44LldUlJS6+Mefvhhz6h7VR9++CHRTVXNJDraLNb84IMady1durRpYmjBGtSHdju8/LLXoTHXXEPJeefx1W23eY71eOMNzpo/n+2//CVfuap/pH/8MQP/8hdWHjnCwSVLPG3bf/MNFwJr1qxh/5EjRFkWo+x29tx/P5+fOOFpl/XKK/QCduzYwVeux2f170+vV15hzYMPsrfaG8rww4dxtG2L5RrpHg9s3ryZTa7Hpn/9NQOBZcuWcdT1s3BJeTmle/bwWZX4AC5wTa1Z6Tp+0eHDVLhGnd3913nlSs7buZP97dp52vmj+rm7Z2TQd+lSvv7jH9n5y18CJsm+4MEHSWjThg+OHaPS1ba+5xQOjIqO5tDvf8+q2bOxqo2ERx46xImEBL9jPV30cxw49WHg1IeBUx8GrrH6sLy8vFHOEwqCmozffffdPPLII3W2KSwspFevXqcthnvuuYc77rjDc7u0tJT09HRGjRpFfBDnm1ZUVLB06VIuueQSIlyjktIwDe7DTz81lVOqsZ84Qfq//kWXTz7BCgsjzOnE5nRiAWnLl9NpzRqw2bC5FgtfcMEFWINOFr6yxcQA8Itf/MIzemt9/TWdn3iCS//2N6zRo2H9esJWrsTq0IG09HQ6jR1rHjxsGNamTQx98EGsa6/FGjgQjhzBtmEDtsWLqdy8GTp08FyrZ8+enOF6rG3fPgCGDx/uKe8XHh1Nm5QUxo4di9PpYMeO1Rw+XEJMTDhRUfGMdT027PPPsT/4IOc89RQdc3MJLywkbMECrO7dSWrf3tPOH/bHHwc4+Zjhw7FWrmTQ009zjmVB167YFi8mrLAQx//8D6OuuMLr8fU9J1tFBe2vu45LZ87EOXEiVnIytqIiwt5/H+f55+N0b1wVBPo5Dpz6MHDqw8CpDwPX2H1YGkoV5wIU1GT8zjvvZGr1DU6q6d69u1/nSk1NZe3atV7Hdu/e7bmvNlFRUURFRdU4HhERERI/cKESR3Pmdx+WlJga2LWwOxxmIWPXrqYe+O7d2BwOwo4eNRVwfv1r+OtfCQ8PN9VB3FyjtV7HH3sMYmMJ+9vf4F//MlOUPvwQLrwQW3Q0Ye52CQmmYspDD2F77TVTDjA+3swVnz2biA4dvK5lt9uxu2+7RswjIiK82thsNjZteYe8vNspLTXz4qfsBnt4JIe3vEPv3rlw3304ystJmTePyNWrsQ0cCO+9B3ffjQ1OxucP18Jkz2MiIkzFlLvvxv7Pf5r/CmVlwQsvYJ86tUY94Xqf07XXmkWpc+aYxP/4cbNJVXY29uuvP/nYINLPceDUh4FTHwZOfRi4xurDlvR9CGoynpycTHJtVSIaaOjQoTz44IPs2bOHlJQUwPwrJD4+nj59+jTKNaSF87cG/Lx5pjSgr02Qnn66Zvthw2ou3rTb4f77zYfbwYOmEkvVeeRgSgo+9JD5qEv1a0ydWnM3z23bKCxczMKFE4CT7edfB1ABCycwceIievfOxfnII3xw0UWMHTv25C+9/Py6Y/DF4TClEqtKSTGbDdXHn+cEvnf5FBERaQaazZzxoqIiDhw4QFFREQ6Hg4KCAgB69OhBbGwso0aNok+fPlxzzTU8+uijlJSUcO+99zJt2jSfI98iNbhrwO/c6bvyic1m7ncn3oEkf0ePnlwM6ubeTfM0JpVOp4O8vNupmoifZAE28vKmk5U1vvEuWlwM557beOcTERFpQZpNMv6nP/2J+fPne267q6MsW7aMYcOGYbfbeffdd7npppsYOnQoMTExTJkyhfurjjyK1KUpa8C/+qoZYR871ox8f/opLFgAo0bBBRcEfv5aFBWt8ExN8c2itHQ7RUUr6NKlnjj27vWuP17dDz+YMpFbt8If/nBK8YqIiLR0zSYZnzdvXq01xt26du3KkgZUeRCpwZ8a8I2hXz8zl/zRR82c6Y4dzTX//OfGOX8tysqKG6/deefVvUFPZqb5D8D06XDddX5dV0REpLVpNsm4SJPJzYXx433PCW8sAwfCRx813vn8FBfn37x4v9q99FKdC15JTIQqVWVERESkJiXjIr4EOic8RGVkZBMfn0Zp6U58zxu3ER+fRkZGNg5HPTttnsbpNCIiIq1FWP1NRKSlCAuzk5Pjrrttq3avuZ2TM5ewsEb8L4CIiIjUSsm4SCvTu3cuEycuIj6+i9fx+Pg0T1lDERERaRqapiLSCvXunUtW1niKilZQVlZMXFwnMjKyNSIuIiLSxJSMi7RSYWF2MjOHBTsMERGRVk3TVEREREREgkTJuIiIiIhIkCgZFxEREREJEiXjIiIiIiJBomRcRERERCRIlIyLiIiIiASJknERERERkSBRMi4iIiIiEiRKxkVEREREgkTJuIiIiIhIkCgZFxEREREJEiXjIiIiIiJBomRcRERERCRIwoMdQKixLAuA0tLSoMZRUVFBeXk5paWlREREBDWW5kp9GBj1X+DUh4FTHwZOfRg49WHgGrsP3XmaO29rzpSMV1NWVgZAenp6kCMRERERkbqUlZWRkJAQ7DACYrNawluKRuR0Otm1axdxcXHYbLagxVFaWkp6ejrbt28nPj4+aHE0Z+rDwKj/Aqc+DJz6MHDqw8CpDwPX2H1oWRZlZWV07tyZsLDmPetaI+PVhIWFkZaWFuwwPOLj4/WDHyD1YWDUf4FTHwZOfRg49WHg1IeBa8w+bO4j4m7N+62EiIiIiEgzpmRcRERERCRIlIyHqKioKGbOnElUVFSwQ2m21IeBUf8FTn0YOPVh4NSHgVMfBk59WDst4BQRERERCRKNjIuIiIiIBImScRERERGRIFEyLiIiIiISJErGRURERESCRMl4CHrwwQc5//zziY6Opl27dj7b2Gy2Gh+vvPJK0wYaovzpv6KiIsaNG0d0dDQpKSn87ne/o7KysmkDbWYyMzNrvObmzJkT7LBC2l//+lcyMzNp06YNQ4YMYe3atcEOqdmYNWtWjddbr169gh1WSFu+fDmXXnopnTt3xmaz8eabb3rdb1kWf/rTn+jUqRNt27Zl5MiRbN68OTjBhqj6+nDq1Kk1Xpc5OTnBCTYEPfzww5x33nnExcWRkpLCZZddxqZNm7zaHDt2jGnTptG+fXtiY2O54oor2L17d5AiDg1KxkPQiRMn+M1vfsNNN91UZ7sXXniB4uJiz8dll13WNAGGuPr6z+FwMG7cOE6cOMGqVauYP38+8+bN409/+lMTR9r83H///V6vuVtvvTXYIYWsV199lTvuuIOZM2fy5Zdf0r9/f0aPHs2ePXuCHVqzcdZZZ3m93j799NNghxTSjhw5Qv/+/fnrX//q8/5HH32Up556imeffZbPPvuMmJgYRo8ezbFjx5o40tBVXx8C5OTkeL0uFyxY0IQRhrZPPvmEadOmsWbNGpYuXUpFRQWjRo3iyJEjnjYzZszgnXfe4bXXXuOTTz5h165d5ObmBjHqEGBJyHrhhReshIQEn/cB1htvvNGk8TQ3tfXfkiVLrLCwMKukpMRz7JlnnrHi4+Ot48ePN2GEzUvXrl2tJ554IthhNBuDBw+2pk2b5rntcDiszp07Ww8//HAQo2o+Zs6cafXv3z/YYTRb1f9GOJ1OKzU11Xrsscc8xw4ePGhFRUVZCxYsCEKEoc/X39kpU6ZY48ePD0o8zdGePXsswPrkk08syzKvuYiICOu1117ztCksLLQAa/Xq1cEKM+g0Mt6MTZs2jQ4dOjB48GCef/55LJWM98vq1avp27cvHTt29BwbPXo0paWlfPvtt0GMLPTNmTOH9u3bc8455/DYY49pak8tTpw4wbp16xg5cqTnWFhYGCNHjmT16tVBjKx52bx5M507d6Z79+789re/paioKNghNVs//vgjJSUlXq/JhIQEhgwZotdkA+Xn55OSkkJWVhY33XQT+/fvD3ZIIevQoUMAJCUlAbBu3ToqKiq8Xoe9evUiIyOjVb8Ow4MdgJya+++/nxEjRhAdHc2HH37IzTffzOHDh7ntttuCHVrIKykp8UrEAc/tkpKSYITULNx2220MHDiQpKQkVq1axT333ENxcTGPP/54sEMLOfv27cPhcPh8nX333XdBiqp5GTJkCPPmzSMrK4vi4mJmz55NdnY2GzZsIC4uLtjhNTvu322+XpP6vee/nJwccnNz6datG1u3buWPf/wjY8aMYfXq1djt9mCHF1KcTifTp0/nggsu4OyzzwbM6zAyMrLGeq7W/jpUMt5E7r77bh555JE62xQWFvq9QOm+++7zfH3OOedw5MgRHnvssRabjDd2/4nRkH694447PMf69etHZGQkN954Iw8//LC2N5ZGN2bMGM/X/fr1Y8iQIXTt2pWFCxdy/fXXBzEyac2uuuoqz9d9+/alX79+nHHGGeTn53PxxRcHMbLQM23aNDZs2KC1Hn5QMt5E7rzzTqZOnVpnm+7du5/y+YcMGcIDDzzA8ePHW2Ri1Jj9l5qaWqOqhXsld2pq6inF11wF0q9DhgyhsrKSbdu2kZWVdRqia746dOiA3W6vUSFg9+7dre411ljatWvHmWeeyZYtW4IdSrPkft3t3r2bTp06eY7v3r2bAQMGBCmq5q979+506NCBLVu2KBmv4pZbbuHdd99l+fLlpKWleY6npqZy4sQJDh486DU63tp/NyoZbyLJyckkJyeftvMXFBSQmJjYIhNxaNz+Gzp0KA8++CB79uwhJSUFgKVLlxIfH0+fPn0a5RrNRSD9WlBQQFhYmKcP5aTIyEgGDRrExx9/7Kly5HQ6+fjjj7nllluCG1wzdfjwYbZu3co111wT7FCapW7dupGamsrHH3/sSb5LS0v57LPP6q3cJbXbsWMH+/fv93qD05pZlsWtt97KG2+8QX5+Pt26dfO6f9CgQURERPDxxx9zxRVXALBp0yaKiooYOnRoMEIOCUrGQ1BRUREHDhygqKgIh8NBQUEBAD169CA2NpZ33nmH3bt384tf/II2bdqwdOlSHnroIe66667gBh4i6uu/UaNG0adPH6655hoeffRRSkpKuPfee5k2bVqLfTMTqNWrV/PZZ58xfPhw4uLiWL16NTNmzODqq68mMTEx2OGFpDvuuIMpU6Zw7rnnMnjwYObOncuRI0e47rrrgh1as3DXXXdx6aWX0rVrV3bt2sXMmTOx2+1MmjQp2KGFrMOHD3v95+DHH3+koKCApKQkMjIymD59On/+85/p2bMn3bp147777qNz584qi1tFXX2YlJTE7NmzueKKK0hNTWXr1q38/ve/p0ePHowePTqIUYeOadOm8fLLL/PWW28RFxfnmQeekJBA27ZtSUhI4Prrr+eOO+4gKSmJ+Ph4br31VoYOHcovfvGLIEcfRMEu5yI1TZkyxQJqfCxbtsyyLMt6//33rQEDBlixsbFWTEyM1b9/f+vZZ5+1HA5HcAMPEfX1n2VZ1rZt26wxY8ZYbdu2tTp06GDdeeedVkVFRfCCDnHr1q2zhgwZYiUkJFht2rSxevfubT300EPWsWPHgh1aSPvLX/5iZWRkWJGRkdbgwYOtNWvWBDukZuPKK6+0OnXqZEVGRlpdunSxrrzySmvLli3BDiukLVu2zOfvvilTpliWZcob3nfffVbHjh2tqKgo6+KLL7Y2bdoU3KBDTF19WF5ebo0aNcpKTk62IiIirK5du1o33HCDV5nc1s5X3wHWCy+84Glz9OhR6+abb7YSExOt6Oho6/LLL7eKi4uDF3QIsFmW6uGJiIiIiASD6oyLiIiIiASJknERERERkSBRMi4iIiIiEiRKxkVEREREgkTJuIiIiIhIkCgZFxEREREJEiXjIiIiIiJBomRcRERERCRIlIyLiIiIiASJknERkWZm6tSp2Gw2bDYbkZGR9OjRg/vvv5/KykoALMviueeeY8iQIcTGxtKuXTvOPfdc5s6dS3l5OQDffvstV1xxBZmZmdhsNubOnRvEZyQi0nopGRcRaYZycnIoLi5m8+bN3HnnncyaNYvHHnsMgGuuuYbp06czfvx4li1bRkFBAffddx9vvfUWH374IQDl5eV0796dOXPmkJqaGsynIiLSqtksy7KCHYSIiPhv6tSpHDx4kDfffNNzbNSoUZSVlTFjxgyuvPJK3nzzTcaPH+/1OMuyKC0tJSEhwet4ZmYm06dPZ/r06U0QvYiIVKWRcRGRFqBt27acOHGCl156iaysrBqJOIDNZquRiIuISHApGRcRacYsy+Kjjz7igw8+YMSIEWzevJmsrKxghyUiIn5SMi4i0gy9++67xMbG0qZNG8aMGcOVV17JrFmz0MxDEZHmJTzYAYiISMMNHz6cZ555hsjISDp37kx4uPl1fuaZZ/Ldd98FOToREfGXRsZFRJqhmJgYevToQUZGhicRB5g8eTLff/89b731Vo3HWJbFoUOHmjJMERGph5JxEZEWZOLEiVx55ZVMmjSJhx56iC+++IKffvqJd999l5EjR7Js2TIATpw4QUFBAQUFBZw4cYKdO3dSUFDAli1bgvwMRERaF5U2FBFpZnyVNqzK6XTy3HPP8fzzz/Ptt98SHh5Oz549ufbaa7nhhhto27Yt27Zto1u3bjUee9FFF5Gfn396n4CIiHgoGRcRERERCRJNUxERERERCRIl4yIiIiIiQaJkXEREREQkSJSMi4iIiIgEiZJxEREREZEgUTIuIiIiIhIkSsZFRERERIJEybiIiIiISJAoGRcRERERCRIl4yIiIiIiQaJkXEREREQkSP4/Z3DBnRkokUUAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "printed_labels = set()\n",
    "\n",
    "plt.figure(figsize=(8, 6))\n",
    "for i, (x, y) in enumerate(vectors_2d):\n",
    "    target_identity = target_identities[i]\n",
    "\n",
    "    target_idx = None\n",
    "    for idx, (identity, _) in enumerate(database.items()):\n",
    "        if target_identity == identity:\n",
    "            target_idx = idx\n",
    "\n",
    "    plt.scatter(x, y, color=colors[target_idx])\n",
    "\n",
    "    # plt.text(x + 0.02, y + 0.02, image_sources[i], fontsize=12, color=colors[target_idx])\n",
    "    if target_identity not in printed_labels:\n",
    "        plt.text(x + 0.02, y + 0.02, target_identity, fontsize=12, color=colors[target_idx])\n",
    "        printed_labels.add(target_identity)\n",
    "\n",
    "plt.title(f\"PCA-reduced 2D representations for {model_name} with indices\")\n",
    "plt.xlabel(\"PC1\")\n",
    "plt.ylabel(\"PC2\")\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
